**操作数据库:CRUD**
**创建:**
create DataBase 数据库名 ;-- 创建数据库
create DataBase if not exists 数据库名;--如果不存在该数据库则创建
create DataBase 数据库 character set 字符集;--创建数据库并指定字符集
**查询:**
show DataBases;--查询所有数据库;
show create DataBase 数据库名;--查看某个数据库定义信息
**修改:**
Alter DataBase 数据库名 default character set 字符集;--修改数据库默认
的字符集
**删除:**
drop DataBase 数据库名;--删除数据库
**操作表:**
**创建:**
create table 表名(
列名1 数据类型,
列名2 数据类型,
.
.
.
列名n 数据类型
)
注:最后一列,不要加逗号。复制表语句:create table 表名 like 被复制的表名;
**查询**
show tables;--显示某个数据库中所有的表
desc 表名;--查询表结构
**修改**
alter table 表名 rename to 新的表名;-- 修改表名
alter table 表名 character set 字符集名称;--修改表的字符集
alter table 表名 add 列名 数据类型;--添加一列
alter table 表名 modify 列名 新数据类型;--修改列名称类型
alter table 表名 change 列名 新列名 新数据类型;--修改列名以及列的数据类型
**删除**
drop table 表名;--删除表
drop table if exists 表名;--如果存在某个表将它删除
4.DML(增、删、改表中的数据)
1.添加数据
insert into 表名(列名1,列名2,...,列名n)values(值1,值2,...值n);
2.删除数据
delete from 表名 where 条件;
注:不加条件,将删除所有数据。
删除表中数据:
delete from 表名;--效率低
truncate table 表名;--效率高
3.修改数据
update 表名 set 列名1 = 值1,列名2=值2,.... where 条件;
注:不加条件会修改表中所对应列的所有值。
5.DQL(查询表中数据)
select 表中列名 from 表名;
1.语法格式:select 字段列表 from 表名列表 where 条件列表 group by 分组列表
having 分组后的条件 order by 排序 limit 分页限定;
注:要清楚哪个先执行,哪个后执行。
2.基础语句
(1)多个字段查询
(2)去除重复字段 select distinct...
(3)计算列
(4)起别名 用as或者直接空格
注:如果表中数据有null,并且参与到运算,那么计算结果都为null;此时需要用到
Ifnull(哪一个字段可能有null值,0)
3.条件查询
(1)where子句后跟条件
(2) 运算符
* > 、< 、<= 、>= 、= 、<>
* BETWEEN...AND
* IN( 集合)
* LIKE:模糊查询
* 占位符:
* _:单个任意字符
* %:多个任意字符
* IS NULL
* and 或 &&
* or 或 ||
* not 或 !
-- 查询年龄大于20岁
SELECT * FROM student WHERE age > 20;
SELECT * FROM student WHERE age >= 20;
-- 查询年龄等于20岁
SELECT * FROM student WHERE age = 20;
-- 查询年龄不等于20岁
SELECT * FROM student WHERE age != 20;
SELECT * FROM student WHERE age <> 20;
-- 查询年龄大于等于20 小于等于30
SELECT * FROM student WHERE age >= 20 && age <=30;
SELECT * FROM student WHERE age >= 20 AND age <=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;
-- 查询年龄22岁,18岁,25岁的信息
SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
SELECT * FROM student WHERE age IN (22,18,25);
-- 查询英语成绩为null
SELECT * FROM student WHERE english = NULL; -- 不对的。null值不能使用 = (!=) 判断
SELECT * FROM student WHERE english IS NULL;
-- 查询英语成绩不为null
SELECT * FROM student WHERE english IS NOT NULL;
-- 查询姓马的有哪些? like
SELECT * FROM student WHERE NAME LIKE '马%';
-- 查询姓名第二个字是化的人
SELECT * FROM student WHERE NAME LIKE "_化%";
-- 查询姓名是3个字的人
SELECT * FROM student WHERE NAME LIKE '___';