SQL基本语法
-
登录mysql
mysql -h localhost -u root -p 然后输入密码即可 -
退出mysql
exit;
数据库的基本操作
-
查看所有数据库
SHOW DATABASES; -
创建数据库
CREATE DATABASE database_name; eg: CREATE DATABASE test_db; ` 这样将会创建一个名叫test_db的数据库 ` -
查看某个数据库的信息
SHOW CREATE DATABASE database_name \G eg: SHOW CREATE DATABASE test_db \G ` 这样的话就会把一个数据库的所有的信息展示出来了 ` -
查看数据库中表格的信息
show tables; # 前提是已经切换到这个表中了(use database_name;) -
删除数据库
DROP DATABASE database_name; eg: DROP DATABASE test_db; ` 这样我们刚刚创建的名叫test_db的数据库就被删除了 ` PS: DROP 为删除命令 DROP TABLE table_name;` 这样就会删除一个table ` -
使用某个数据库
USE database_name; eg: USE test_db;
表格的基本操作
-
创建表单
CREATE TABLE 表名 ( 字段名1 数据类型 列级别约束条件, 字段名2 数据类型 列级别约束条件, ... ); CREATE TABLE tb_emp1 ( id INT(11), name VARCHAR(25), depeId INT(11), salary FLOAT ); -
指定主键
#在创建时用列级别约束条件直接指定 CREATE TABLE tb_emp1 ( id INT(11) PRIMARY KEY, name VARCHAR(25), deptId INT(11), salary FLOAT ); 也可以写成 CREATE TABLE tb_emp1 ( id INT(11), name VARCHAR(25), deptId INT(11), salary FLOAT, PRIMARY KEY(id) ); -
向表格中添加信息
insert into <表名> (参数 注意此处的顺序可以与表格创建时的顺序不一样,但是一定要包含所有的参数); eg: insert into students (id, name); -> values(2018303012, 'pxc'), (2018303000, 'xxx'); -
查看表格信息
select * from <表名>; eg: select * from students; 将有以下显示: +----+------+ | id | name | +----+------+ | 11 | zrs | | 12 | pxc | | 13 | hz | +----+------+ 其实,*代表了选择显示所有的列,如果是输入 "select id from students;" ,将会有以下显示: +----+ | id | +----+ | 11 | | 12 | | 13 | +----+ -
查看表格结构
法一: desc <表名>; describe <表名>; # 两种写法效果一致 eg: desc students; describe students; 将有以下显示: +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(25) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ NULL表示一列表示这个字段是否可以为空 Key表示该字段是否编制索引,PRI表示该字段为主键,UNI表示该列是UNIQUE索引的一部分,MUL表示该列中某个给定值允许出现多次 Default表示该字段是否有默认值 Extra表示可以获取的与给定列有关的附加信息法二: show create table <表名> \G; # 加上\G是为了更清晰的展示 eg: show create table students \G; 将有以下显示: *************************** 1. row *************************** Table: students Create Table: CREATE TABLE `students` ( `id` int(11) NOT NULL, `name` varchar(25) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 不加\G: show create table <表名>; eg: show create table students; 将有以下显示:(可以看出比较乱) +----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | students | CREATE TABLE `students` ( `id` int(20) NOT NULL, `name` varchar(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | +----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -
修改数据表
使用alter table <表名>修改
基本格式为alter table <表名> + 进行的修改操作修改操作包括 rename <新表名> (修改表名) add <字段名> <字段数据类型> [约束条件] [first | after 已存在的字段名] (增加字段) change <旧字段名> <新字段名> <新数据类型> (修改字段名) drop <字段名> (删除字段) drop foreign key <外键约束名> modify <字段名> <新数据类型> (修改字段的数据类型) modify <字段名> <数据类型> first | after 已存在的字段名 (修改字段的位置) engine=<新引擎名> (修改该表的存储引擎)- 修改表名(rename)
alter table <旧表名> rename [TO(可加可不加)] <新表名>; eg: alter table students rename students_hhh; # alter table students rename to students_hhh;效果一样 修改后使用show tables;看表格信息如下: +-------------------+ | Tables_in_test_db | +-------------------+ | students_hhh | +-------------------+ 可以看到表的名字已经改变了(再改回来,以便以后好继续总结)- 修改字段的数据类型(modify)
alter table <表名> modify <字段名> <数据类型>; eg: alter table students modify name varchar(30); # 不要瞎搞,不要原来保存着VARCHAR的数据然后你又要改成int,那样会出现error的.但是如果此表这一列中原来为空,可以修改数据类型.- 修改字段名(change)
alter table <表名> change <旧字段名> <新字段名> <新数据类型>; alter table students change name newname varchar(30); # 依旧不要瞎搞,不要把之前保存着varchar的数据然后又改成int,那样会出现error的.但是如果此表这一列中原来为空,可以修改数据类型.- 添加字段(add)
alter table <表名> add <新字段名> <数据类型> [约束条件] [first | after 已存在的字段名]; first 或after指定添加的字段的位置. alter table students add sex varchar(1) after id;- 删除字段(drop)
alter table <表名> drop <字段名>; alter table students drop sex; -
删除不存在关联的表
drop table [if exists]<表1,表2,...,表n>; -
删除被其他主键关联的表
首先要解除外键约束 alter table <表名> drop foreign key <外键的名称>; 然后再删除表格 drop table [if exists]<表名>;