1.MySQL简介 MySQL默认端口号是多少? 3306 MySQL中的超级用户叫什么? root 创建数据库的语句? CREATE DATABASE JD CHARSET=utf8; 修改数据库的语句? alter database 库名 charset=utf8; 删除数据库的语句? DROP DATABASE JD; 查看数据库的语句? SELECT DATABASE();
2.数据表: 数据库是由数据表组成的,数据是存在数据表里的。
3.使用数据库: USE python;
4.创建表:
-- create table 表名(字段名 类型名 约束); create table classes( id int unsigned auto_increment primary key not null, name varchar(20) not null ); create table students ( id int unsigned auto_increment primary key not null, name varchar(30) not null, age tinyint unsigned default 0, high decimal(5,2), gender enum("男", "女", "中性", "保密") default "保密", cls_id int unsigned, foreign key(cls_id) references classes(id) );5.查看数据表: SHOW TABLES; --查看所有的表 DESC students; --查看表结构 SHOW CREATE TABLE classes; --查看创表语句
6.删除表: DROP TABLE classes;
7.增删改查 1.插入记录:
-- INSERT [INTO] 表名 [(列名,....)] VALUES(数据,......); -- 全列插入 -- insert 表名 values (...) insert students values(0,"张三",20,175,"男",1); -- 部分插入 -- insert into 表名(列1,...) values(值1,...) insert students (name,high) values ("王二", 173); -- 多行插入 insert students (name, high) values ("刘备", 160),("张飞", 178);2.记录查找:
-- SELECT 列名,.... FROM 表名 [ WHERE 条件] 1.查询所有列 -- select * from 表名; -- 注意 :“ * ” 号可以表示所有字段(列) select * from students; 2.指定条件查询 -- 条件可以使用 > < >= <= AND OR select * from students where age > 21; -- 查询名字中带有 "王" 字的所有人信息: select * from students where name like "%王%"; -- 查询id小于3且年龄等于20的所有人信息: select * from students where id<3 and age=20; 3.查询指定列 -- select 列1,列2,... from 表名; select name, gender from students; select gender, name from students; 4.可以使用as为列或表指定别名 -- select 列1【 as 名字】,列2【 as 名字】,... from 表名; select name as '姓名', gender as '性别' from students;3.修改:
-- update 表名 set 列1=值1,列2=值2... where 条件 -- 把id为1的同学,年龄改为10,性别改为保密 update students set age=10,gender=4 where id=1; -- 将所有人的年龄增加1: update students set age=age+1;4.删除:
1.物理删除 -- 基本用法为: delete from 表名称 where 删除条件; -- 删除id为2的行: delete from students where id=2; -- 删除所有年龄小于20岁的数据: delete from students where age<20; -- 删除表中的所有数据: delete from students; 2.逻辑删除 -- 用一个字段来表示 这条信息是否已经不能再使用了 -- alter table students add is_delete bit default 0; update students set is_delete=1 where id=5;8.表结构的修改:
1.添加字段 -- alter table 表名 add 列名 列数据类型 [after 插入位置]; -- 示例: -- alter table 表名 add 列名 类型;z'//'1' -- 在名为 age 的列后插入列 address: alter table students add birthday datetime after age; 2.删除字段 -- alter table 表名 drop 列名; alter table students drop high; 3.修改字段:不重命名版 -- alter table 表名 modify 列名 类型及约束; alter table students modify birthday date; 4.修改字段:重命名版 -- alter table 表名 change 原名 新名 类型及约束; alter table students change birthday birth date; 5.表格重命名: 基本形式: -- alter table 表名 rename 新表名; 示例: -- 重命名 students 表为 workmates: alter table students rename workmates;9.表的约束:确保表中数据的完整性,唯一性
常用7种约束: unsigned: 无符号约束,指定数字不能为负数 -- 数字(整数,小数) not null: 非空约束,指定某列不为空 auto_increment: 自动增长约束,序号自动加一 -- 注意:必须与主键组合使用 -- 默认情况下,初始值为1,每次增量为1 unique: 唯一约束,指定某列和几列组合的数据不能重复 -- 唯一约束可以保证记录的唯一性 -- 唯一约束的字段可以为空值(NULL) -- 每张数据表可以存储多个唯一约束 primary key: 主键约束,指定某列的数据不能重复、唯一 -- 每张数据表只能存在一个主键 -- 主键保证记录的唯一性 -- 主键自动为NOT NULL foreign key: 外键,指定该列记录属于主表中的一条记录,参照另一条数据 default 0: 当插入数据的时候,如果字段没有数据,则自动插入默认值10.备份和恢复:
-- 数据库的备份 mysqldump -uroot -p python > python.sql; -- 恢复 -- 先建一个新的数据库 create database newpython charset=utf8; mysql -uroot -p newpython < python.sql;