目录
1.启动MySQL服务
打开MySQL安装目录下的bin文件,输入:
net start mysql
2.关闭MySQL服务
net stop mysql
3.登录
MySql服务开启后,输入:
mysql -u {username} -p {password}
username:用户名,我这里用户名是root
password:密码,我这里密码是123456
4.
4.退出登录
quit;
5.显示当前服务器版本
SELECT VERSION();
6.显示当前日期时间
SELECT NO();
7.显示当前用户
SELECT USER();
8.创建数据库
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name;
{}表示必选项,[]表示可选项,|表示或
CHARACTER SET [=] charset_name表示编码方式
创建一个名字为test的数据库:
9.查看数据库编码方式
创建时采用默认编码方式,即为my.ini中指定的编码方式。我的my.ini中指定默认编码方式为utf8.
SHOW CREATE DATABASE db_name;
i
可以看到编码方式为utf8
10.修改数据库的编码方式
ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name;
修改为gbk编码方式
可以看到已经修改为gbk。
11.查看当前数据库下数据表列表
SHOW DATABASES;
可以看到刚才创建的数据库已存在。
12.删除数据库
DROP DATABASE db_name;
可以看到已经删除。
13.查看警告
SHOW WARNINGS;
当前没有警告。
14.数据类型
数据类型 | 存储范围 | 字节 |
TINYINT | 有符号值:-128~+127(~) 无符号值:0~255(0~) | 1 |
SMALLINT | 有符号值:-32768~+32767(~) 无符号值:0~65535(0~) | 2 |
MEDIUMINT | 有符号值:-8388608~+8388607(~) 无符号值:0~16777215(0~) | 3 |
INT | 有符号值:-2147483648~+2147483647(~) 无符号值:0~4294967295(0~) | 4 |
BIGINT | 有符号值:-9223372036854775808~+9223372036854775808(~) 无符号值:0~18446744073709551615(0~) | 8 |
数据类型 | 存储范围 | 字节 |
FLOAT(M,D) | -3.402823466E+38~-1.175494351E-38、0、1.175494351E-38~3.402823466E+38。 M是数字总位数,D是小数点后面的位数。 | |
DOUBLE(M,D) | -1.7976931348623157E+308~-2.2250738585072014E-308、0、 2.2250738585072014E-308~1.7976931348623157E+308 |
数据类型 | 存储范围 | 字节 |
YEAR | 默认4位1970~2069(年) | 1 |
TIME | -8385959~+8385959 | 3 |
DATE | 1000/1/1~9999/12/31 | 3 |
DATETIME | 1000/1/1 00:00:00~9999/12/31 23:59:59 | 8 |
TIMESTAMP | 1970/1/1 00:00:00~2037 | 4 |
数据类型 | 存储范围 | 备注 |
CHAR(M) | M个字节, | 定长 |
VARCHAR(M) | L+1个字节,其中且 | 变长 |
TINYTEXT | L+1个字节,其中 | |
TEXT | L+2个字节,其中 | |
MEDIUMTEXT | L+3个字节,其中 | |
LONGTEXT | L+4个字节,其中 | |
ENUM('value1','value2',...) | 1或2个字节,取决于枚举值的个数(最多65535个值) | |
SET('value1','value2',...) | 1、2、3、4或8个字节,取决于set成员的数目(最多64个成员) |
15.打开数据库
USE db_name
现在已经打开了test数据库,接下来验证是否打开了test数据库。
16.查看当前打开的数据库
SELECT DATABASE();
确实已经打开了test数据库。接下来在此数据库创建数据表。
17.创建数据表
CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type,...)
创建一个数据表,名字是tb1,有3个变量姓名、年龄、工资。
18.查看数据表(当前数据库下和其他数据库下的数据表)
SHOW TABLES [FORM db_name];
加上FORM db_name后就可以查看db_name数据库下的数据表。
test数据库下只有一个数据表,就是刚刚创建的tb1。
mysql数据库下有33个数据表。
19.查看数据表结构
SHOW COLUMNS FROM tb_name
查看发现数据表结构就是刚才创建的结构。
20.向数据表插入记录
INSERT [INTO] tb_name [(col_name,...)] VALUES(val,...)
如果省略掉中括号中的col_name,则必须给所有的列赋值。
如果不全都赋值,则出错,如上图第2行命令所示。
加上中括号中的col_name之后就可以写固定列了。如上图所示。
21.查看数据表记录
SELECT expr,.... FROM tb_name
列出数据表tb1全部字段。
22.mysql空值与非空
NULL,字段值可以为空
NOT NULL,字段值禁止为空
创建一个tb2数据表,名字不能为空,年龄可以为空。赋值如下图:
如果将名字赋值为空,则报错,如下图提示username不能为空:
23.自动编号
AUTO_INCREMENT
必须与主键组合使用
默认情况下,起始值为1,每次增加量为1.
没有与主键合用,错误。
24.主键(PRIMARY KEY)
每张数据表只能存在一个主键
主键保证记录的唯一性
主键自动为NOT NULL
主键不一定与AUTO_INCREMENT一起使用。
id自动赋值,只需要给username赋值即可。
可以看到id自动增加,保证记录唯一性。
创建一个数据表,定义主键不是自动编号,如下图
插入编号和username,如下图
如果插入相同编号会怎么样呢?看下图:
说明AUTO_INCREMENT必须与PRIMARY KEY一起使用,但PRIMARY KEY不一定与UTO_INCREMENT一起使用。
25.唯一约束(UNIQUE KEY)
- 唯一约束可以保证记录的唯一性
- 唯一约束的字段可以为空值(NULL)
- 每张数据表可以存在多个唯一约束
创建一个新数据表,将username设置为UNIQUE KEY
当写入两个相同名字时,系统提示错误。
26.默认约束
- 默认值
- 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
新建数据表,将性别默认为3,如下图
当不给性别赋值时,性别默认为3,验证如下图:
只给姓名赋值,性别自动赋值为3.