文章目录
注:
① SQL 对大小写不敏感:如SELECT 与 select 是相同的。
② SQL语句需要加上分号表示语句结束。
下面从最基本的创建数据库和创建表进行SQL语法的学习,linux下的mysql安装和远程登录配置可以看这两篇博客:
MySQL数据库安装和基本操作
Navicat 数据库可视化工具远程连接MySQL及基本操作
1.数据库的创建、查看、删除
创建一个新的数据库:
create database 数据库名;
例如创建一个新的数据库boys
:
create database boys;
查看当前的所有数据库:
show databases;
删除数据库:
drop database <数据库名>;
![image-20200617100631591](https://i-blog.csdnimg.cn/blog_migrate/cbb28dff25b6fbb602765b2009d2d957.png)
2.数据表结构的创建、查看、删除、修改
一个数据库中会包含有一张或者多张数据表,数据表的基本操作如下。
2.1 创建数据表:
在创建之前需要指定使用的数据库:
use <数据库名>;
然后创建数据表:
create table <数据表名>(字段1名 字段1类型,字段2名 字段2类型,...);
数据表的字段可以有多个,使用逗号隔开即可。
在创建数据表之前,先来看看MySQL的数据类型:
-
数值类型
整数类型:tinyint,smallint,mediumint,int/integer,bigint,所占字节大小分别为:
1、2、3、4、8。
小数类型:float,double,单精度和双精度分别占4、8字节。还有一种比较特殊的小数类型:decimal,用法:decimal(M,D),占用字节数由M和D决定,如果M>D,为M+2否则为D+2。decimal(M,D)表示整数部分占M-D位,小数部分为D占D位,如decimal(3,2)表示小数部分保留两位,多余的会四舍五入,整数部分保留3-2=1位,插入数值不对会报错。
-
日期和时间类型
date:日期,格式:2020-01-01(年-月-日),范围:1000-01-01/9999-12-31;
time:时间,格式:12:10:52(时-分-秒),范围: ‘-838:59:59’/‘838:59:59’;
year:年份,格式:2020,范围:1901/2155;
datetime:日期+时间:2020-01-01 12:10:52,范围:1000-01-01 00:00:00/9999-12-31 23:59:59;
timestamp:时间戳,与上面的datetime类似,占用4字节。
注:日期和时间类型都是字符串格式的,插入时要用双引号,如:
insert into test(Date,Time) values (“2020-01-01 12:10:59”,“2020-06-01 12:10:59”);
-
字符串类型
常用的两种:
char:定长字符串,大小:0-255字节;
varchar:变长字符串,大小:0-65535字节;
创建数据表实例:
在student数据库中创建一个学生信息表,包含字段如下,用于记录学生成绩。
学号id:数值类型,宽度为5;
姓名name:字符类型,长度不固定;
成绩score:数值类型,0~100;
出生日期date:日期类型,年月日;
create table info(id int(5) not null, name varchar(5) not null,score int(3) not null, birthday date not null);
not null
是约束条件,表示不能为空。int(5)表示宽度为5,varchar(5)也是同样的,表示字符串最大长度为5。
![image-20200619110826746](https://i-blog.csdnimg.cn/blog_migrate/a632c90b376130aae3e57132736e62da.png)
2.2 查看数据表
查看所有数据表:
show tables;
查看某个数据表的详细结构:
desc <表名>;
2.3 修改数据表
使用alter命令可以对数据表的字段结构进行添加删除和修改。
- 修改字段结构:
添加一个字段使用add子句:
alter table table_name add <新字段> <新字段类型>;
创建一个新的字段:
![image-20200619111909688](https://i-blog.csdnimg.cn/blog_migrate/83458fa1ed620e56c39fff028041dd41.png)
删除字段加上drop子句:
alter table table_name drop <字段名称>;
删除上面的字段:
![image-20200619112407279](https://i-blog.csdnimg.cn/blog_migrate/aecdcec8162e40aa1b2a4f5ffac71e06.png)
使用change子句修改当前存在的字段:
alter table table_name change <旧字段> <新字段> <新字段类型>;
例如,创建一个新的字段old(int),修改为new(char):
![image-20200619113216032](https://i-blog.csdnimg.cn/blog_migrate/cab83ed2c47b31bc5b4b71af3c72d5c4.png)
-
修改表名
使用rename子句可以重命名数据表名,格式如下:
alter table <旧数据表名> rename <新数据表名>;
例如:
2.4 删除数据表
使用drop命令进行删除:
drop table <表名>;
3.数据表记录的插入、查询、删除
3.1 插入记录
插入数据到数据表,使用insert语句,基本格式如下:
insert into <数据表名>(field1, field2,...fieldN )
values
(value1, value2,...valueN );
fieldN
是待插入的字段,valueN
是对应前面字段N的值。
向前面的学生信息表中插入一组记录:
insert into info(id,name,score,birthday) values (10001,"Tom",98,"1999-06-06");
![image-20200619124234890](https://i-blog.csdnimg.cn/blog_migrate/d71a9d1686b878869f740286bd01a1af.png)
还可以一次插入多条记录,每条记录之间使用逗号进行隔开,使用格式:
insert into table_name(field1, field2,...fieldN)
values
(valueA1,valueA2,...valueAN),
(valueB1,valueB2,...valueBN),
(valueC1,valueC2,...valueCN)......;
例如:
![image-20200619125352685](https://i-blog.csdnimg.cn/blog_migrate/76894bf7679078204b4b0064187f6c23.png)
单独插入某一个或几个字段的列也是可以的,如:
3.2 查询记录
查询使用select语句,前面已经使用过,基本格式:
SELECT colum1_name,colum2_name,..,columN_name FROM table_name;
根据需要查询所需字段,如:
![image-20200620151633811](https://i-blog.csdnimg.cn/blog_migrate/fc55ee5fcfbdb4ba7a8b4ca7d82824fa.png)
使用通配符*查询所有字段内容,前面已经举例。
可以配合where子句进行条件查询,如:
![image-20200620152150356](https://i-blog.csdnimg.cn/blog_migrate/861394dde05a97d944d14c462378225f.png)
3.3 修改记录
修改数据表数据记录可使用update语句,基本格式如下:
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause];
一般配合where子句进行条件匹配修改数据记录,使用示例:
修改Tom的成绩为100:
![image-20200620152814634](https://i-blog.csdnimg.cn/blog_migrate/d70572be783d90967bebbd612518a0c8.png)
3.4 删除记录
删除数据记录可使用delete语句,基本格式:
DELETE FROM table_name [WHERE Clause];
同样使用where子句进行匹配删除,例如通过id匹配删除July的记录:
![image-20200620153715871](https://i-blog.csdnimg.cn/blog_migrate/074fb18672cb17d932fd9ff7fa6079a0.png)