mysql
库操作
创建数据库
详细命令
启动mysql的命令
mysql.exe -h localhost -P 3306 -u root -p
回车输入密码
简写:mysql -u root -p
退出mysql的三种命令
exit quit \q
-- 双中划线加空格表示多行注释,也可以是#
创建一个叫mydb的数据库
create database mydb charset utf8;(mydb是数据库的名字)
创建一个带关键字的数据库(使用反引号就不会报错)
create database `database` charset utf8;
创建一个中文的数据库(不建议用中文)
create database `北京` charse utf8;如果报错的话,就通过
set name gbk;告诉服务器当前中文的字符集是gbk,然后再去创建数据库
创建成功之后,在mysql的安装路径里面会有data文件夹,里面会有相对应数据库的文件夹
查看数据库(查询)
详细的命令
-- 查看所有数据库
show databases;
-- 模糊查询,查询以a开头的数据库(%匹配多个字符)
show databases like 'a%';
-- 查询以a_(a下划线)开头的数据库,下划线需要转义,把_(匹配单个字符)的意义取消
show databases like 'a\_%';
-- 查看数据库mydb的创建语句
show create database mydb;
-- 查看带关键字数据库的建表语句(需要反引号 1前面那个键)
show create database `database`;
更新删除数据库
具体的命令
注意,数据库的名字是不能修改的
-- 比如创建数据库名字的时候,忘记加字符集utf8了,这个时候就可以修改一下
alert database mydb charset utf8;
-- 校对集依赖于字符集,字符集被修改后,它也会随着修改
-- 删除mydb的数据库
drop database mydb;
-- 删除之后,再查看所有的数据库的时候是找不到的
show databases;
-- 在文件夹里面的数据库也会删除,这种删除不可逆
表操作
创建数据表
if not exists是一个判断,如果没有这个表的就创建,有的话就不执行了,最后面的表选项就是字符集
凡是[ ]里面的内容都是可有可无的
()小括号里面的东西是字段,字段之间用逗号隔开,最后一个不需要
具体命令(怎么用)
-- 创建一个student表(varchar是字符串类型,后面的数字是限制)
create table if not exists student(
name varchar(10),
gender varchar(3),
number varchar(10),
age int
)charset utf8;
每一个表的创建,都必须依赖数据库,连接认证数据库成功之后,直接执行表的创建会报错的
解决方案
详细的操作
方案一的用法
create table if not exists mydb.student(
name varchar(10),
gender varchar(3),
number varchar(10),
age int
)charset utf8;
mydb.student 告诉数据库,这个表是mydb这个数据库里面的
方案一用的不多,方案二
-- 连接认证成功之后,先进入mydb数据库
use mydb;
-- 创建student表
create table if not exists student(
name varchar(10),
gender varchar(3),
number varchar(10),
age int
)charset utf8;
查看表
详细的命令(查看表及其中的字段)
所有有关表的操作,一定要先进入数据库(use 数据库)中
-- 查看mydb的所有表(也是要先use mydb 先进入数据库中)
show tables;
-- 在mydb的数据库中查看以s结尾的表
show table '%s';
-- 但是这种的效率很低,后面会有效率高的方法
-- 查看创建表的语句
-- 比如查看学生表的语句
show create table student;
-- 还可以用下面的两种方式查
show create table student\g -- \g等价于;
show create table student\G -- \G表示将查到的结构表转90度变成纵向,竖着排字段
-- 查看表结构(查看表格当中的字段)
-- 查看student里面的字段
desc student;
-- 或者
describe student;
-- 或者
show columns from student;
修改表
具体命令(修改表本身)
-- 修改表名
-- 比如把student这个表名修改成my_student
rename table student to my_student;
-- 再查看这个数据库中的所有表
show tables; -- 可以发现被修改了
-- 修改表选项
-- 比如修改字符集
alter table my_studet charset = gbk;
修改表中的字段
增删改查
增加字段
-- 比如给学生表增加id的字段
-- 先进入数据库,我的这个表在mydb这个数据库中,所以应该
use mydb; -- 进入数据库
desc my_student; -- 查看表中的字段
-- 把id字段放在第一个位置
alter table my_student add column id int first;
-- 执行成功之后,执行desc my_student,会发现字段的变化
修改字段
-- 把学生表的number字段变成固定的长度,并且放在id之后
-- varchar不是固定长度,他是一个限度,char是固定长度
alter table my_student modify number char(10) after id;
修改字段的名字(重命名字段)
-- 修改学生表中的字段gender 为sex
-- alter table 表名 change 旧字段 新字段 数据类型 [列属性][位置];
alter table my_student change gender sex varchar(3);
删除字段
-- 删除学生表中的年龄age字段
alter table my_student drop age;
删除表
-- 删除表
-- 比如删除mydb123这张表
drop table mydb123;