1 -- 数据库的操作 2 3 -- 链接数据库 4 mysql -uroot -p 5 mysql -uroot -p密码 6 7 -- 退出数据库 8 exit/q/ctrl+d 9 10 -- sql语句最后需要有分号;结尾 11 -- 显示数据库版本 12 select version(); 13 14 -- 显示时间 15 select now(); 16 17 -- 查看所有数据库 18 show databases; 19 20 -- 创建数据库 21 -- create database 数据库名 charset=utf8; 22 create database python04 charset=utf8; 23 24 -- 查看创建数据库的语句 25 -- show create database.... 26 show create database python04; 27 28 -- 查看当前使用的数据库 29 select database(); 30 31 -- 使用数据库 32 -- use 数据库名; 33 use python04; 34 35 --删除数据库 36 -- drop database 数据库名; 37 drop database python04; 38 39 40 -- 数据表的操作 41 42 43 -- 查看当前所有的数据库表 44 show tables; 45 46 -- 创建表 47 -- auto_increment 表示自动增长 48 -- not null 表示不能为空 49 -- primary key 表示主键 50 -- default 默认值 51 -- create table 数据表名称(字段 类型 约束[,字段 类型 约束]); 52 -- 创建classes表(id, name) 53 create table `classes` ( 54 `id` int primary key not null auto_increment, 55 `name` varchar(30) not null 56 ); 57 58 -- 查看数据表结果 59 -- desc数据库名称; 60 desc classes; 61 62 -- 创建students表(id,name,age,high,gender,cls_id) 63 -- unsigned表示无符号范围(正数) 64 create table students( 65 id int unsigned not null auto_increment primary key, 66 name varchar(30) not null, 67 age tinyint unsigned, 68 high decimal(5,2), 69 gender enum('男','女','保密') default '保密', 70 cls_id int unsigned 71 ); 72 73 -- 添加表数据 74 -- insert into 表名 values(按创建时顺序分别插入数据); 75 insert into students values(0, '老王', 18, 185, '男', 0); 76 77 -- 查询表数据 78 select * from students; 79 80 -- 查看表的创建语句 81 -- show create table 表名; 82 show create table students; 83 84 -- 查看表结构 85 desc table students; 86 87 -- 修改表——添加字段 88 -- alter table 表名 add 列名 类型; 89 alter table students add birthday datetime; 90 91 -- 修改表——修改字段:不重命名版 92 -- alter table 表名 modify 列名 类型及约束; 93 alter table students modify birthday date; 94 95 -- 修改表——修改字段:重命名版 96 -- alter table 表名 change 原名 新名 类型及约束; 97 alter table students change birthday birth date default '2000-01-01'; 98 99 -- 修改表——删除字段 100 -- alter table 表名 drop 列名; 101 alter table students drop high; 102 103 -- 删除表 104 -- drop table 表名; 105 drop table students; 106 107 108 -- 增删改查 109 110 -- 增加 111 --全列插入 112 -- insert [into] 表名 values(...) 113 -- 主键字段 可以用0 null default 来占位 114 -- 向classes表中插入 一个班级 115 insert into classes values(1, '菜鸟班') 116 117 -- 向students表中插入 一个学生信息 118 insert into students values(null, '小乔', 18, '女', 0, '2002-01-01') 119 120 -- 部分插入 121 -- insert into 表名(列1,...) values(值1,...) 122 insert into students (name, age, gender) values ('张飞', 19, '男') 123 124 -- 多行插入 125 insert into students (name, age, gender) values('李白', 20, '男'),('貂蝉', 18, '女') 126 127 -- 修改 128 -- update 表名 set 列1=值1,列2=值2...where 条件; 129 -- 不加条件修改全部 130 update students set age=20 where name='张飞' 131 132 -- 删除 133 -- 物理删除 134 -- delete from 表名 where 条件; 135 -- 不加where条件将会清空表 136 delete from students where name='小乔'; 137 138 -- 逻辑删除 139 -- 用一个字段来表示,这条消息是否不能再使用了 140 -- 给students表中添加一个is_delete字段 141 -- alter table students add is_delete bit default 0; 142 alter table students add is_delete bit default=0; 143 -- update students set is_delete=1 where id=6; 144 update students set is_delete=1 where id=6; 145 -- 查询显示数据加上is_delete=0的条件 146 147 -- 查询基本使用 148 -- 查询所有列 149 -- select * from 表名; 150 select * from students; 151 152 -- 指定条件查询 153 -- select * from students where 条件; 154 select * from students where name='张飞'; 155 select * from students where id>6; 156 157 -- 查询指定列 158 -- select 列1,列2... from 表名; 159 select name,gender from students; 160 161 -- 可以使用as为列或表指定别名 162 -- select 字段[as 别名],字段[as 别名] from 数据表 where ...; 163 select name as 姓名,gender as 性别 from students where id<9; 164 select id as 序号,name as 姓名,gender as 性别 from students; 165 166 -- 字段的顺序 167 -- select * from 表名 where 条件 order by 列 [ASC]或[DESC] ASC顺序,DESC倒序 168 select * from students where gender='女' order by id desc; 169 170 -- 外键相关 171 -- 同步表A数据到表B,表B是表A的外键表 172 -- 表A中的班级的种类放到表B的name中 173 insert into classes (name) select cls_name from students group by cls_name; 174 175 -- 将表A中班级信息修改为 表B中同一班级信息对应的id 176 update students as s inner join classes as c on s.cls_name=c.name set s.cls_name=c.id 177 178 -- 修改表A中班级信息字段的结构 和表B中id字段的结构一样 179 alter table students change cls_name cls_id int not null; 180 181 -- 关联外键用于设置后续表A中添加数据 对班级信息的约束 182 alter table students add foreign key (cls_id) references classes (id); 183 184 -- 创表时关联外键 185 create table students( 186 id int unsigned not null auto_increment primary key, 187 name varchar(30) not null, 188 age tinyint unsigned, 189 high decimal(5,2), 190 gender enum('男','女','保密') default '保密', 191 cls_id int unsigned, 192 foreign key(cls_id) references classes(id), 193 ); 194 195 -- 取消外键 196 -- 先获取外键约束名称,该名称系统会自动生成,可以通过查看表创建语句来获取名称 197 show create table students; 198 --获取名称之后就可以根据名称来删除外键约束 199 alter table students drop foreign key 外键名称;