MySQL中的SQL标准语句详解
前言
例如MySQL中的LIMIT语句就是MySQL独有的方言,其它数据库都不支持!当然,Oracle或SQL Server都有自己的方言。
语法要求:
- SQL语句可以单行或多行书写,以分号结尾;
- 可以用空格和缩进来来增强语句的可读性;
- 关键字不区别大小写,建议使用大写;
对数据库的操作
#语法:
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARACTER SET 字符集 COLLATE 排序规则字符集];
#创建数据库:
CREATE DATABASE [IF NOT EXISTS] mydb1;
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARACTER SET 字符集 COLLATE 排序规则字符集];
#创建数据库:
CREATE DATABASE [IF NOT EXISTS] mydb1;
如果不加 IF NOT EXISTS 的话,如果数据库存在的话,会报错。字符集一般使用UTF8mb4,排序规则一般使用utf8mb4_bin
对表的操作
对表的操作相对于对数据库操作更多且更加频繁
表的创建
语法:
CREATE TABLE 表名(
列名 列类型,
列名 列类型,
……
);
如果创建的表存在则会报错
例子
CREATE TABLE emp (
eid CHAR(6) COMMENT ‘编号’,
ename VARCHAR (50) COMMENT ‘姓名’,
age INT COMMENT ‘年龄’,
gender VARCHAR (6) COMMENT ‘性别’,
birthday DATE COMMENT ‘出生日期’,
hiredate DATE COMMENT ‘入职日期’,
salary DECIMAL (7, 2) COMMENT ‘薪水’,
RESUME VARCHAR (1000) COMMENT ‘简介’
) COMMENT ‘员工表’ ;
eid CHAR(6) COMMENT ‘编号’,
ename VARCHAR (50) COMMENT ‘姓名’,
age INT COMMENT ‘年龄’,
gender VARCHAR (6) COMMENT ‘性别’,
birthday DATE COMMENT ‘出生日期’,
hiredate DATE COMMENT ‘入职日期’,
salary DECIMAL (7, 2) COMMENT ‘薪水’,
RESUME VARCHAR (1000) COMMENT ‘简介’
) COMMENT ‘员工表’ ;
COMMENT代表解释说明,注意最后一列在定义的时候后面的逗号不要加。
如果不定义字符集编码与排序规则的话,默认是和数据库的字符集编码与排序规则一致。
表的其他操作
–查看当前数据库中所有表名称:
SHOW TABLES;
–查看指定表的创建语句: 查看emp表的创建语句;
–查看表结构:
DESC emp; –查看emp表结构;
–删除表:
DROP TABLE emp; –删除emp表;
–修改表:
–1. 修改之添加列:给stu表添加classname列:
ALTER TABLE stu ADD (classname varchar(100));
–2. 修改之修改列类型:修改stu表的gender列类型为CHAR(2):
ALTER TABLE stu MODIFY gender CHAR(2);
–3. 修改之修改列名:修改stu表的gender列名为sex:
ALTER TABLE stu change gender sex CHAR(2);
–4. 修改之删除列:删除stu表的classname列:
ALTER TABLE stu DROP classname;
–5. 修改之修改表名称:修改stu表名称为student:
ALTER TABLE stu RENAME TO student;
SHOW TABLES;
–查看指定表的创建语句: 查看emp表的创建语句;
–查看表结构:
DESC emp; –查看emp表结构;
–删除表:
DROP TABLE emp; –删除emp表;
–修改表:
–1. 修改之添加列:给stu表添加classname列:
ALTER TABLE stu ADD (classname varchar(100));
–2. 修改之修改列类型:修改stu表的gender列类型为CHAR(2):
ALTER TABLE stu MODIFY gender CHAR(2);
–3. 修改之修改列名:修改stu表的gender列名为sex:
ALTER TABLE stu change gender sex CHAR(2);
–4. 修改之删除列:删除stu表的classname列:
ALTER TABLE stu DROP classname;
–5. 修改之修改表名称:修改stu表名称为student:
ALTER TABLE stu RENAME TO student;
表的插入
语法
INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2)
#例子
INSERT INTO stu VALUES(‘s_1002’, ‘liSi’, 32, ‘female’);
#例子
INSERT INTO stu VALUES(‘s_1002’, ‘liSi’, 32, ‘female’);
同时也可以插入多条
INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2….), VALUES(值1, 值2….)…..
列名要与值一一对应,如果全部都插入可以省略表名,比如上面举的例子
表的修改
语法:
UPDATE 表名 SET 列名1=值1, … 列名n=值n [WHERE 条件]
#例子
UPDATE stu SET sname=’zhangSanSan’, age=’32’, gender=’female’ WHERE sid=’s_1001′;
#例子
UPDATE stu SET sname=’zhangSanSan’, age=’32’, gender=’female’ WHERE sid=’s_1001′;
如果不添加where条件的话,会导致全表修改,所以在使用的时候注意了。
表的删除
语法:
DELETE FROM 表名 [WHERE 条件]
#例子
DELETE FROM stu WHERE sid=’s_1001′;
#例子
DELETE FROM stu WHERE sid=’s_1001′;
如果不加 WHERE 条件的话,会全表的数据全部删除,所以要谨慎使用。
表的查询
#查询表的所有信息
SELECT * FROM stu;
#查询指定列
SELECT 字段1, 字段2, 字段3 … FROM 表名 ;
SELECT * FROM stu;
#查询指定列
SELECT 字段1, 字段2, 字段3 … FROM 表名 ;
条件查询
条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:
- =、!=、<>(不等于)、<、<=、>、>=
- BETWEEN…AND
- IN(set)
- IS NULL
- AND
- OR
- NOT
逻辑运算符:
逻辑运算符
AND 或 && 并且 (多个条件同时成立)
OR 或 || 或者 (多个条件任意一个成立)
NOT 或 ! 非 , 不是
#例子
SELECT * FROM stu WHERE gender = ‘female’ AND ge < 50 ;
SELECT * FROM stu WHERE gender = ‘female’ AND ge < 50 ;
到此这篇关于MySQL中的SQL标准语句详解的文章就介绍到这了,更多相关MySQL SQL语句内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!