连接

命令行cd到目录

C:\Program Files\MySQL\MySQL Server 8.0\bin

mysql -u root -p

数据操作

添加删除数据

查看DB

show databases

添加DB

create database gc

删除DB

drop database gc

gc 为数据库名

数据类型

文本类型

数据类型 描述
CHAR(size) 保存固定长度的字符串(可包含字母、数字以及特殊字符)●在括号中指定字符串的长度。最多255个字符。
VARCHAR(size) 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多255个字符。注释:如果值的长度大于255,则被转换为TEXT类型。
TINYTEXT 存放最大长度为255个字符的字符串。
TEXT 存放最大长度为65,535个字符的字符串。
BLOB 用于BLOBs (Binary Large OBjects).存放最多65,535字节的数据。
MEDIUMTEXT 存放最大长度为16,777,215 个字符的字符串。
MEDIUMBLOB 用于BLOBs (Binary Large OBjects)。存放最多16,777,215 字节的数据。
LONGTEXT 存放最大长度为4,294,967,295个字符的字符串。
LONGBLOB 用于BLOBs (Binary Large OBjects).存放最多4,294,967,295字节的数据。
ENUM(x,y,z,etc.) 允许你输入可能值的列表。可以在ENUM列表中列出最大65535个值。如果列表中不存在插入的值,则插入空值。注释:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值: ENUM(‘X’,”Y’,;Z’)
SET 与ENUM类似,SET最多只能包含64个列表项,不过SET可存储一个以上的值。

数字类型

数据类型 描述
TINYINT(size) -128到127常规。0到255无符号*。在括号中规定最大位数。
SMALLINT(size) -32768到32767常规。0到65535无符号*。在括号中规定最大位数。
MEDIUMINT(size) -8388608到8388607普通。0 to 16777215无符号*。在括号中规定最大位数。
INT(size) -2147483648到2147483647常规。0到4294967295无符号*。在括号中规定最大位数。
BIGINT(size) -9223372036854775808到9223372036854775807常规。0到18446744073709551615无符号*。在括号中规定最大位数。
FLOAT(size,d) 带有浮动小数点的小数字。在括号中规定最大位数。在d参数中规定小数点右侧的最大位数。
DOUBLE(size,d) 带有浮动小数点的大数字。在括号中规定最大位数。在d参数中规定小数点右侧的最大位数。
DECIMAL(size,d) 作为字符串存储的DOUBLE类型,允许固定的小数点。

日期类型

数据类型 描述
DATE() 日期。格式: YYYY-MM-DD注释:支持的范围是从*1000-01-01’到’9999-12-31’
DATETIME() *日期和时间的组合。格式: YYYY-MM-DD HH:MM:SS注释:支持的范围是从’1000-01-01 00:00:00’到’9999-12-31 23:59:59’
TIMESTAMP() 时间戳。TIMESTAMP值使用Unix纪元(‘1970-01-01 00:00:00 UTC)至今的描述来存储。格式: YYYY-MM-DD HH:MM:SS注释:支持的范围是从 1970-01-0100:00:01 UTC到’2038-01 -0903:14:07’ utC
TIME() 时间。格式: HH:MM:SS注释:支持的范围是从’-838:59:59’到’838:59:59’
YEAR() 2位或4位格式的年。注释: 4位格式所允许的值: 1901到2155。2位格式所允许的值: 70到69,表示从1970到2069.

创建数据表

create table table_ name (
colum_ name data_ _type,
colum_ name data_ type,
.
colum_ name data_type
);

例子

CREATE TABLE account (
id bigint(20)
create Time datetime,
ip varchar(255),
mobile varchar(255),
nickname varchar(255),
passwd varchar(255),
username varchar(255),
avatar varchar(255),
brief text,
job varchar(255),
location varchar(255),
qq varchar(255), 
gender int(11),
city varchar(255),
province varchar(255)
);

基本操作

use gc;#使用数据库
show tables;#展示数据表
create account(colum type);#创建数据表
describe account#查看数据表
drop account;#删除数据表

增加删除行列

增加

alter table [ table_ name ] add [ column_ name][ data_ _type ] [not null] [default ]

例子:

alter table account add c1 int(11) not null default 1;

删除

alter table[ table_ name ] drop[ column_ name ]

例子:

alter table account drop c1;

修改列信息

alter table[ table_ name ] change [ old_ column_ name ] [ new_ column_ name ] [data_ type ]

1.只改列名:
data type和原来一样,old column name != new column name

2.只改数据类型:
old column name == new column name, data_ type改变

3.列名和数据类型都改了

插入和查看表的数据

查看

select * from table_ name;

select col_ name 1 ,col_ name2, ... from table_ name;

插入

insert into[ tabte_ name ] values(值1, 值....

insert into [table_ name] (列1, 列2...) values(值1,值...

where 条件

select * from table_ name where col_ name运算符值

例子:

select * from book where title = = t’ ;

运算符

运算符 描述
= 等于
!= 不等于
> 大于
< 小于.
>= 大于等于
<= 小于等于
between 在两个值范围内
like 按某个模式查找

组合条件

where后面可以通过and与or运算符组合多个条件筛选

语法:

select * from table_ name where toll =XXXandcol2=XXorcol3>XX

null字段的判断

NULL字段无法直接查询

  • 正确

select * from book where id is null

  • 错误

select * from book where id = null

distinct语句

select distinct col_ name from table_ name ;

例子:

select distinct title from book;

select 语句可以去除重复的语句

order by对查询结果进行排序

1.按单一列名排序:

select * from table name [where子句] order by col name [asc/desc]

2.按多列排序:

select * from table_ name [where子句] order by coll [asc/desc],col2
[asc,desc]

asc升序
desc降序

limit截取查询结果

select * from table_ name [where子句] [order by子句] limit [offset,] rowCount

offset:查询结果的起始位置,第一 条记录的其实是0
rowCount:从offset位置开始,获取的记录条数

注意
limit rowCount = limit 0,rowCount

作用:截取页面

插入命令和查询命令select的组合使用

一般用法:

insert into [表名] values(值1, 值.....

insert into[表名] (列1 ,列2...) values(值1,值....

Insert into与select的组合用法

insert into [表名1] select 列1,列2 from [表名2]

insert into [表名1] (列1,列2) select列3,列4 from [表名2]

作用:数据迁移

更新表的数据

修改单列:

update表名set列名= XXX [where字句]

修改多列:

update表名set列名1 = xxx,列名2 = xxX... [where 字句]

where语句中in,like,between的使用

in

select * from表名where列名in (value1 ,value2..)

select * from表名where列名in (select 列名from表名)

例子

select * from book where title in('sun','color')

betweeen

select * from表名where列名between值1 and值2

select * from表名where列名not between值1 and值2

like

作用:字符模糊匹配

select * from表名where列名[not] like pattern

pattern:匹配模式

比如
'abc'%abc’,‘abc%’,'%abc%' ;
%” 是一个通配符,理解_上可以把他当成任何字符串

例子:

'%abc'
能匹配
'erttsabc'