MySql常用操作(一)
- 创建数据库
create database 数据库名 character set utf8;
- 修改数据库
alter database 数据库名 charactor set gbk;
- 添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
- 修改一个表的字段类型
ALTER TABLE 表名 MODIFY 字段名 数据类型;
- 删除一列
ALTER TABLE 表名 DROP 字段名;
- 修改表名
RENAME TABLE 原始表名 TO 要修改的表名;
- 查看表的创建细节
SHOW CREATE TABLE 表名;
- 修改表的列名
ALTER TABLE 表名 CHANGE 原始列名 新列名 数据类型;
- 删除表
DROP TABLE 表名;
DML是对表中的数据进行增、删、改的操作
查询表中的所有数据
SELECT * FROM 表名;
插入操作
INSERT INTO 表名(列名1,列名2 ...)VALUE (列值1,列值2...);
批量插入
INSERT INTO 表名(列名1,列名2 ...)VALUES [[列值1,列值2...],[列值1,列值2...]...];
更新操作
UPDATE 表名 SET 列名1=列值1,列名2=列值2 。。。 WHERE 列名=值
- 举例说明
把所有学生的分数改为90
update students set score=90
把姓名为zs的学生分数改为60
update student set score=60 where name='zs';
把姓名为李四的年龄改为20和分数改为70
update student set age=20,score=70 where name='ls';
把wc的年龄在原来基础上加1岁
update students set age=age+1 where name='wc';
删除操作
DELETE FROM 表名 【WHERE 列名=值】
- DELETED 与TRUNCATE的区别
- DELETE 删除表中的数据,表结构还在;删除后的数据可以找回
- TRUNCATE 删除是把表直接DROP掉,然后再创建一个同样的新表。删除的数据不能找回。执行速度比DELETE快。
条件查询
- 条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用一些运算符及关键字:
条件查询运行符及关键字
=(等于)、!=(不等于)、<>(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于); BETWEEN…AND;值在什么范围 IS NULL;(为空) IS NOT NULL(不为空) AND;与 OR;或 NOT; 非
使用方法
查询性别为男,并且年龄为20的学生记录
SELECT * FROM students WHERE gender='男' AND age=20;
查询学号为1001 或者 名为zs的记录
SELECT * FROM students WHERE id ='1001' OR name='zs';
查询学号为1001,1002,1003的记录
SELECT * FROM students WHERE id='1001' OR id='1002' OR 1001='1003';
查询年龄为null的记录
SELECT * FROM students WHERE age IS NULL;
查询年龄在18到20之间的学生记录
SELECT * FROM students WHERE age>=18 AND age<=20;
查询性别非男的学生记录
SELECT * FROM students WHERE gender !='男';
模糊查询
- 根据指定的关键进行查询,使用LIKE关键字后跟通配符
_ :任意一个字符%:任意0~n个字符
使用
查询姓名由5个字母构成的学生记录
SELECT * FROM students WHERE name LIKE '_____';
查询姓名以“m”开头的学生记录
SELECT * FROM students WHERE name LIKE 'm%';
查询姓名中第2个字母为“u”的学生记录
SELECT * FROM students WHERE name LIKE '_u%';
排序
- 对查询的结果进行排序,使用关键字ORDER BY
- 升序ASC :从小到大 默认
- 降序DESC: 从大到小
使用
对所有员工的薪水进行排序
SELECT *FROM employee ORDER BY age ASC;
查询所有学生记录,按年龄降序排序
SELECT * FROM employee ORDER BY age DESC;