MYSQL基础语法
1.数据库介绍
数据库概述:
存储数据的仓库. 其本质是一个文件系统,数据库按照特定的格式将数据永久存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
数据库优点:
数据库是按照特定的格式将数据存储在文件中,通过SQL语句可以方便的对大量数据进行增、删、改、查操作,数据库是对大量的信息进行管理的高效的解决方案
常见数据库 :
MYSQL:开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。
Oracle:收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中.
SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。
SyBase:已经淡出历史舞台。
SQLite: 嵌入式的小型数据库,应用在手机端。
2.SQL语句
概述:结构化查询语言(Structured Query Language)简称SQL,SQL语句就是对数据库进行操作的一种语言。
作用 :通过SQL语句我们可以方便的操作数据库中的数据、表、数据库。
SQL是数据库管理系统都需要遵循的规范。不同的数据库生产厂商都支持SQL语句,但都有特有内容。
SQL分类:
-
DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter等 -
DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update等 -
DCL(Data Control Language)数据控制语言
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE等
-
TCL(Transaction Control Language) 事务控制语言
用于控制数据库的事务操作,关键字; COMMIT,SAVEPOINT,ROLLBACK等
-
DQL(Data Query Language) 数据查询语言
DQL语言并不是属于MYSQL官方的分类,但是对数据库的操作最多就是查询,
所以我们的程序员把查询语句的语句称作为DQL语言
数据库的CRUD操作
C (Create)增加:
1.创建数据库:直接创建数据库的bd1
CREATE DATABASE db1;
2.判断是否存在并创建数据库:判断是否存在并创建数据库db2
CREATE DATABASE IF NOT EXISTS db2;
3.创建数据库并指定字符集(编码表):创建数据库并指定字符集为gbk
CREATE DATABASE db3 CHARACTER SET gbk;
4.创建表:
CREATE TABLE 表名 (
字段名 字段类型,
字段名 字段类型,
......
字段名 字段类型
);
5.复制表:
CREATE TABLE 新表名 LIKE 旧表名;
6.向表中添加记录:
INSERT INTO 表名 (字段1,字段2,....) VALUES (值1,值2,...);
7.向表中添加所有字段的记录:值和字段一一对应.
INSERT INTO 表名 VALUES (值1,值2,....)
R (Read)读取,查询:
1.查看摸个数据库的定义信息:
SHOW CREATE DATABASES 数据库名;
2.查看所有数据库:
SHOW DATABASES;
3.查看某个数据库的所有表:
SHOW TABLES;
4.查看表结构:
DESC 表名;
5.查询创建创建表:
SHOW CREATE TABLE 表名
6.查询记录:查询显示整个表的内容
SELECT * FROM 表名;
7.查询表中单个记录
SELECT * FROM 表名 WHERE 条件;
8.查询一条记录的某些字段
SELECT 字段1, 字段2, ...FROM 表名 WHERE 条件
9.别名查询:
SELECT 字段1 别名 ,字段2 别名, 字段3 别名,... FROM 表名 WHERE 条件;
10.去重复查询
SELECT DISTINCT 字段1, 字段2, 字段3, ...FROM 表名 WHERE 条件;
11.查询结果参与运算:列与固定值
SELECT 列名1 + 固定值 FROM 表名;
12.查询结果参与运算:列与列
SELECT 列名1 + 列名2 FROM 表名
13按条件查询:比较运算符
--1.查询年龄大于40岁的记录
SELECT * FROM 表名 WHERE age>40;
--2.查询工资低于5000的记录
SELECT * FROM 表名 WHERE salary<5000;
--3.查询id为1的记录
SELECT * FROM 表名 WHERE id=1;
--1.查询年龄大于等于40岁的记录
SELECT * FROM 表名 WHERE age>=40;
--2.查询工资小于等于5000的记录
SELECT * FROM 表名 WHERE salary<=5000;
--2.查询性别部位男的记录
SELECT * FROM 表名 WHERE sex<>男;
SELECT * FROM 表名 WHERE sex!=男;
14.按条件查询:逻辑运算符
-- 查询年龄大于40 并且为男性的记录
SELECT * FROM 表名 WHERE age>40 AND sex='男';
-- 查询年龄小于24 或者 性别为女 的记录
SELECT * FROM 表名 WHERER age<24 OR sex='女';
15.按条件查询:范围
-- 查询年龄在30到40的记录
SELECT * FROM 表名 WHERE age BETWEEN 30 AND 40;
-- 查询id 为1,5,7,9 的记录
SELECT * FROM 表名 WHERE ID IN (1,5,7,9);
16.模糊查询:%
:表示0个或多个字符(任意字符),-
:表示一个字符.
-- 查询姓马的记录
SELECT * FROM 表名 WHERE NAME LIKE '马%';
-- 查询姓名中包含"马"字的记录
SELECT * FROM 表名 WHERE NAME LIKE '%马%';
-- 查询姓马,且姓名有三个字的记录
SELECT * FROM 表名 WHERE NAME LIKE '马__';
U (Update):更新(改):
1.修改数据库的
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;
2.修改表:
-- 添加字段
ALTER TABLE 表名 ADD 字段名 字段类型;
--改变字段类型
ALTER TABLE 表名 MODIFY 字段名 新类型;
--修改字段
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新类型;
--改表名
ALTER TABLE 旧表名 TO 新表名;
-- 删除字段
ALTER TABLE 表名 DROP 字段名;
--修改标的编码类型
ALTER TABLE 表名 CHARACTER SET 字符集;
3.复制表:
--先复制表格格式
CREATE TABLE 新表名 LIKE 旧表名;
--再复制内容
INSERT INTO 新表名 SELECT * FROM 旧表名;
3.修改记录
UPDATE 表名 SET 字段名 = 字段值,字段2=字段值,... WHERE 条件;
--例如 修改名字将张三的年龄为30
UPDATE 表名 SET age = 30 WHERE name='张三';
D(Delete)删除:
1.删除数据库:
DROP DATABASE 数据库名;
2.删除表:
DROP TABLE 表名;
3.删除表:判断是否存在这个表,存在则删除
DROP TABLE IF EXISTS 表名;
4,删除记录:删除某条特定的记录
DELETE FROM 表名 WHERE 条件;
5.删除整个标的内容:逐条删除
DELETE FROM 表名;
6.删除整个表格:先瓦解整个表,再重建一个一模一样的新表
TRUNCATE TABLE 表名