--- title: MySQL笔记: 基本操作 date: 2017-03-31 21:00:00 updated: 2017-03-31 21:00:00 description: "基本操作" categories: [个人笔记] tags: [MySQL, MySQL笔记] --- ### 数据库操作 ```sql -- 1. 显示当前有哪些数据库 SHOW DATABASES; -- 2. 创建数据库,设置编码方式为utf8 CREATE DATABASE xxxcompany DEFAULT CHARACTER SET utf8; -- 3. 删除数据库 DROP DATABASE xxxcompany; -- 4. 查看数据库 SHOW CREATE DATABASE xxxcompany; -- 5. 修改数据库 ALTER DATABASE xxxcompany DEFAULT CHARACTER SET gbk; -- 6. 使用数据库 USE xxxcompany; ``` ### 表格操作 ```sql -- 1. 查看所有表格 SHOW TABLES; -- 2. 创建表格 -- 创建部门表(部门编号,部门名字) CREATE TABLE department(id INT,NAME CHAR(20)); -- 3. 查看创建的某个表格详细信息 DESC department; -- 4. 删除表格 DROP TABLE department; -- 5. 修改表格 -- 5.1 添加字段 部门主管名字 ALTER TABLE department ADD COLUMN departName VARCHAR(3); -- 5.2 删除字段 部门主管名字 ALTER TABLE department DROP COLUMN departName; -- 5.3 修改字段类型 原先varchar(20) 改为 varchar(30) ALTER TABLE department MODIFY COLUMN departName VARCHAR(30); -- 5.4 修改字段名称 departName 改为 dept ALTER TABLE department CHANGE COLUMN departName dept VARCHAR(30); -- 5.5 修改表格名称为 原先department 改为 dept ALTER TABLE department RENAME TO dept; -- 6. 数据操作 -- 6.1 添加数据 INSERT INTO department VALUES(001,'工程部'); -- 6.2 删除数据 -- 不加条件,所有都被删除了 delete from student; delete from student where sid = 1001; -- 6.3 修改数据 update student set username = 'lisisi' where sid = 1002; -- 如果不写条件,就会把所有记录都修改了 update student set username = 'lisisisi' -- 6.4 查询数据 SELECT * FROM 部门表; -- 7 数据表字段的约束(详见约束) -- 7.1 主键约束 -- 关键字 PRIMARY KEY -- 7.2 默认值约束 -- 关键字 DEFAULT -- 7.3 非空约束 -- 关键字 NOT NULL -- 7.4 唯一约束 -- 关键字 NOT NULL UNIQUE -- 7.5 自增长约束 -- 关键字 AUTO_INCREMENT -- 7.6 外键约束 -- 关键字 FOREIGN KEY ``` ### 简单查询例子 ```sql -- 查询表中所有学生的信息。 SELECT * FROM student; -- 查询表中所有学生的姓名和对应的英语成绩。 SELECT stuName,english FROM student; -- 过滤表中英语成绩的重复数据 SELECT DISTINCT english FROM student; -- 使用别名表示学生分数。 -- 表的别名在多表查询时会用到 SELECT id AS '学号',stuName AS '姓名',chinese AS '语文',english AS '英语',math AS '数学' FROM student AS s; -- 查询所有姓名为杨的学生成绩 SELECT * FROM student WHERE stuName LIKE '杨%'; -- 查询英语成绩大于等于90分的同学 SELECT * FROM student WHERE english > 90; -- 查询总分大于200分的所有同学 SELECT * FROM student WHERE (english + chinese + math) > 200; -- 查询所有姓段的学生英语成绩。 SELECT english FROM student WHERE stuName LIKE '段%'; -- 查询英语>80或者总分>200的同学 SELECT * FROM student WHERE english > 80 OR (english + chinese + math) > 200; -- 统计每个学生的总分。 SELECT stuName AS '姓名',(english + chinese + math) AS '总分' FROM student; -- 在所有学生总分数上加10分特长分。 ```