MySQL入门与命令
MySQL默认端口号:3306
MySQL中的超级用户:root
1、数据库命令基本操作
MySQL语句规范
- 关键字和函数名称全部大写
- 数据库名称、表名称、字段名称全部小写
- SQL语句必须以分号结尾
修改MySQL的提示符
prompt \d
使用当前的数据库名作为提示符
显示当前服务器版本
SELECT VERSION();
显示当前日期时间
SELECT NOW();
显示当前用户
SELECT USER();
创建数据库的命令,大括号为必选项,中括号为可选项
CREATE { DATABASE | SCHEMA } [ IF NOT EXISTS ] db_name [ DEFAULT ] CHARACTER SET [ = ] charset_name
创建数据库,如果存在返回警告,显示警告信息:
CREATE DATABASE t1;
CREATE DATABASE IF NOT EXISTS t1;
SHOW WARNINGS;
创建数据库t2,使用gbk编码方式
CREATE DATABASE IF NOT EXISTS t2 CHARACTER SET gbk;
显示创建的数据库t2的相关信息
SHOW CREATE DATABASE t2;
修改数据库
ALTER { DATABASE | SCHEMA } [db_name] [ DEFAULT ] CHARACTER SET [ = ] charset_name
将数据库t2的编码方式修改为utf8
ALTER DATABASE t2 CHARACTER SET = utf8;
删除数据库
DROP { DATABASE | SCHEMA } [ IF EXISTS ] db_name
DROP DATABASE IF EXISTS t2;
2、数据类型
数据类型:指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
整型(选择合适的整型的数据类型,可以节省空间)
- TINYINT 有符号(-2^7 — 2^7-1)无符号(0 — 2^8)字节数:1
- SMALLINT 字节数:2
- MEDIUMINT 字节数:3
- INT 字节数:4
- BIGINT 字节数:8
浮点型
- FLOAT[(M, D)] 精度7位,10的38次方
- DOUBLE[(M, D)] 10的308次方
日期时间型
- YEAR 字节数:1
- TIME 3
- DATE 3
- DATETIME 8
- TIMESTAMP 4
字符型
- CHAR(M) M个字节,0 <= M <= 255
- VARCHAR(M),L+1个字节,其中L <= M 且 0 <= M <= 65535
- TINYTEXT , L+1个字节,其中L < 2^8
- 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个成员)
3、MySQL数据表操作
数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础。
打开一个数据库
·USE db_name;
查看打开数据库是否成功,查看当前数据库
SELECT DATABASE();
创建一个数据表
CREATE TABLE [IF NOT EXISTS] table_name (
column_name data_type,
...
)
最后一个字段不需要加逗号
create table tb1(
username VARCHAR(20),
age TINYINT UNSIGNED,
salary FLOAT(8, 2) UNSIGNED
);
查看数据表列表
SHOW TABLES;
SHOW TABLES FROM mysql;
查看数据表结构
SHOW COLUMNS FROM table_name;
插入记录
INSERT [INTO] table_name [(col_name, ...)] VALUES(val, ...)
示例:
INSERT tb1 VALUES('Tom',25,10000);
INSERT tb1(username, salary) VALUES('John', 9000);
记录查找与查看
SELECT expr,... FROM tb1_name
select * from tb1;
约束:
- PRIMARY KEY(主键约束)
- UNIQUE KEY(唯一约束)
- DEFAULT(默认约束)
- NOT NULL(非空约束)
设定字段可以为空或不可为空
NULL, 字段值可以为空
NOT NULL,字段值禁止为空
create table tb2(
username varchar(20) not null,
age tinyint unsigned null
);
show columns from tb2;
AUTO_INCREMENT
保证记录的唯一性,必须与主键一起使用
1.自动编号,且必须与主键组合使用;2.默认情况下,起始值为1,每次增量为1
PRIMARY KEY(主键)
- 主键约束
- 每张数据表只能存在一个主键
- 主键保证记录的唯一性
- 主键自动为NOT NULL
create table tb3(
id smallint unsigned auto_increment primary key,
username varchar(30) not null
);
UNIQUE KEY(唯一约束键)
- 唯一约束
- 唯一约束可以保证记录的唯一性
- 唯一约束的字段可以为空值(NULL)
- 每张数据表可以存在多个唯一约束
一张表中主键约束只有一个,而唯一约束可以有多个
DEFAULT(默认约束)
- 默认值
- 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值
create table tb6(
id smallint unsigned auto_increment primary key,
username varchar(20) not null unique key,
sex enum('1','2','3') default '3'
);