mysql命令行脚本

  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 外键名称;
原文地址:https://www.cnblogs.com/zzmx0/p/12735464.html