前言
关于mysql的安装和理论知识可以自行百度搜索,为方便书写本篇采用图片方式展示,若需要可视化工具可以自行下载。
以下是本篇文章正文内容,下面案例可供参考
一、SQL操作基础部分
操作数据库
创建、查看、修改、删除数据库
创建:字符集和字符集校对规则可以省略。
create database 数据库名称 character set 字符集 collate 字符集校对规则
查看:
查看数据库服务器中所有的数据库:show databases;
查看某个数据库的定义信息:show create database 数据库名称;
修改:
alter database 数据库名称 character set 字符集 collate 校对规则;
删除:
drop database 数据库名称;
其他操作:
切换数据库: use 数据库名称;
查看当前正在使用的数据库:select database();
操作表
要想操作表首先要了解一些基础知识,在下列给出。
创建、查看、修改、删除表
创建:
create table 表名称 (字段名称 字段类型(长度) 约束 ,字段名称 字段类型(长度) 约束…);
那么这个字段类型有哪些呢?看下表
java的类型 | mysql的类型 |
---|---|
byte/short/int/long | tinyint/smallint/int/bigint |
float | float |
double | double |
boolean true和false辨别 | bit 使用0和1来辨别 |
char/String | char和varchar类型 |
Date | date/time/datetime/timestamp |
File | BLOB/TEXT |
char和varchar的区别:
char代表是固定长度的字符或字符串。
定义类型char(8),向这个字段存入字符串hello,那么数据库使用三个空格将其补全。
varchar代表的是可变长度的字符串。
定义类型varchar(8),向这个字段存入字符串hello,那么存入到数据库的就是hello。
datetime和timestamp区别
datetime就是既有日期又有时间的日期类型,如果没有向这个字段中存值,数据库使用null存入到数据库中
timestamp也是既有日期又有时间的日期类型,如果没有向这个字段中存值,数据库使用当前的系统时间存入到数据库中。
那么这个约束有哪些呢?
约束:
约束作用:保证数据的完整性。
单表约束分类:
主键约束: primary key主键约束默认就是唯一非空的
唯一约束:unique
非空约束:not null
了解上述知识后,在doc中运行代码。(笔者调了一下doc窗口颜色,不用在意)
create table user(
id int primary key auto_increment,
username varchar(20) unique,
password varchar(20) not null,
age int,
birthday date
);
查看:
查看某个数据库下的所有的表 : show tables;
查看某个表的结构信息 : desc 表名;
删除:
drop table 表名;
修改:
添加列
alter table 表名 add 列名 类型(长度) 约束;
修改列类型,长度和约束
alter table 表名 modify 列名 类型(长度) 约束;
删除列
alter table 表名 drop 列名;
修改列名称
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
修改表名
rename table 表名 to 新的表名;
修改表的字符集
alter table 表名 character set 字符集;
操作表的记录
添加、修改、删除、查看记录
添加:
向表中插入某些列: insert into 表名(列名1,列名2,列名3…) values (值1,值2值3…)
向表中插入所有列: insert into 表名 values (值1,值2,值3…)
注意事项:
值的类型与数据库中表列的类型一致。
值的顺序与数据库中表列的顺序一致。
值的最大长度不能超过列设置最大长度。
值的类型是字符串或者是日期类型,使用单引号引起来。
如果插入中文记录错误,则很大可能是字符集不一致导致,可以用 show variables like ‘%character%’; 查看字符集,若是客户端为utf8则去mysql的安装路径修改.ini配置文件,改成gbk即可,具体可查看百度。
修改:
update 表名 set 列名=值 , 列名=值 [where条件];
注意:
1.值的类型与列的类型一致。
2.值的最大长度不能超过列设置的最大长度。
3.字符串类型和日期类型添加单引号。
删除:
delete from 表名 [where条件];
注意:
1.删除表的记录,指的是删除表中的一行记录。
2.删除如果没有条件,默认是删除表中的所有记录。
拓展:
删除表中的记录有两种做法:
delete from user; 删除所有记录,属于DML语句,原理是一条记录一条记录删除。事务可以作用在DML语句上的。可以用 rollback 语句回滚;
truncate table user; 删除所有记录,属扩DDL语句,将表删除,然后重新创建一个结构一样的表。事务不能控制DDL的。
查看:
查询前先创建表,并且添加数据。
例如:
create table exam(
id int primary key auto_increment,
name varchar(20),
english int,
chinese int,
math int
);
insert into exam values (null,'张三',84,74,91);
insert into exam values (null,'李四',93,71,81);
insert into exam values (null,'王五',75,54,71);
insert into exam values (null,'赵六',42,94,81);
insert into exam values (null,'田七',81,71