SQL基础语句
1.基本介绍:
SQL(StructuredQueryLanguage)语句又叫结构化查询语言,适用于关系型据库比如MySQL,Oracle,SQLserver等数据库.
2.SQL语句分类:
DDL(数据定义语言):用于操作数据库和表;
DML(数据操作语言):用于操作表中的记录;
DQL(数据查询语言):用于查询表中的记录;
DCL(数据控制语言):用于客户端授权数据库的操作.
3.——————-数据库操作———————-
1.查询和创建操作
1.CREATE DATABASE db1; //创建数据库
2.CREATE DATABASE IF NOT EXISTS db1; //创建数据库如果该数据库不存在
3.CREATE DATABASE db1 CHARACTER SET gbk; //设置字符集
4.SHOW DATABASES; //查看所有数据库
5.SHOW CREATE DATABASE db1; //显示数据库的创建语句(隐含的作用:查看数据库的字符集)
6.SELECT DATABASE(); //查询正在使用的数据库
2.修改和删除等操作
1.ALTER DATABASE db1 CHARACTER SET gbk; //修改数据库字符集
2.DROP DATABASE db1; //删除数据库
3.DROP DATABASE IF EXISTS db1; //删除数据库
4.USE db1; //使用数据库
4.———————-表操作————————
1.CREATE TABLE stu( //创建学生表
id INT, //字段id
name VARCHAR(20), //姓名
math INT, //数学成绩
english INT, //英语成绩
birthday DATE, //出生日期
add_time DATESTAMP //添加日期
);
2.CREATE TABLE stu1 LIKE stu; //复制表stu
3.SHOW TABLES; //显示所有表
4.DESC stu; //查询表的结构
5.ALTER TABLE stu RENAME TO stu1; //重命名
6.ALTER TABLE stu CHARACTER SET gbk; //修改表的字符集
7.ALTER TABLE stu ADD score INT; //表中添加一列
8.ALTER TABLE stu MODIFY score VARCHAR(10); //修改某一列数据类型
9.ALTER TABLE stu CHANGE score fenshu INT; //修改score列为fenshu列 并修改数据类型为int
10.ALTER TABLE stu DROP score //删除stu中的score列
11.DROP TABLE stu; //删除stu表
12.RENAME TABLE stu TO stu1; //修改表名
注:修改表和数据库的DDL操作,后面一般都加database或者table,初学者写SQL语句的时候容易忽略
5.———————-表记录操作———————
1.INSERT INTO stu (列名1,...) VALUES (值1,....);
//表中添加数据--->列名可以有一个 也可以有多个
2.INSERT INTO stu VALUES (值1,...值N);
//表中添加数据--->没有列名, 值可以是1个或多个 ,没有值为null
* 注意:
1.列名和值要一一对应。
2.如果表名后,不定义列名,则默认给所有列添加值
INSERT INTO 表名 VALUES(值1,值2,...值n);
如果添加多条记录可以将VALUES后面用括号,然后用逗号隔开,最后一个括号后面加分号结束
3.除了数字类型,其他类型需要使用引号(单双都可以)引起来
3.DELETE FROM stu WHERE 条件 ;
// 执行多次删除操作
4.TRUNCATE FROM stu;
//删除表所有记录,创建新表
5.UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2,... WHERE 条件;
如果不加任何条件,默认修改所有值.
注意: INSERT INTO 后面没有TABLE
UPDATE 后面也不加TABLE
6. ———————表查询操作————————
1.SELECT * FROM stu
//查询所有字段
2.SELECT 字段名1,字段名2... FROM stu;
//查询多个字段用逗号隔开
3.SELECT DISTINCT 字段名1,... FROM stu;
//查询多个字段不包含重复值
4.SELECT DISTINCT name, math AS 数学+IFNULL(english,0) 英语 AS 总分 FROM stu;
//查询姓名,总分成绩(数学+英语)
5.SELECT name,math AS 数学 ,...english AS 英语 FROM stu AS 学生
//表别名--->用于多表查询
6.SELECT 列名1+固定值 FROM 表名;
//查询字段计算
7.SELECT 列名1+列名2 FROM 表名;
// 参与运算的必须是数值类型.
8.AND \OR 关键字
9.BETWEEN...AND \ IN
10.通配符 '_':一个任意字符
'%':多个任意字符
11.模糊查询 字段 LIKE
例: "李%" : 李开头的