1. 数据库系统
其实我们常常说的数据库,应该叫数据库系统。
1.1 启动数据库的服务端
# MAC系统
sudo /usr/local/mysql/support-files/mysql.server start
# redhat/CentOS
/usr/local/mysql/bin/mysql -u root -p
1.2 连接数据库服务端
# 类unix操作系统下
mysql -u root -p
-u 指定用户名
-p 表示接下来要使用密码
-P 指定服务端端口
-h 指定服务端的ip
1.3 修改数据库系统管理员密码
# 方法之一(CentOS下)后面有更多方法
/usr/bin/mysqladmin -u root password '新密码'
##2. 表和库的概念
数据表:用来保存数据的表格
数据库:用来统一管理数据表的容器
3. 库的操作
3.1 查看和选择库
# 查看数据库系统中一共有多少个数据库
show databases;
# 切换/选择数据库
use 数据库名
3.2 创建一个数据库
create database 您要创建的数据库名称;
# 创建数据库并指定编码和校对集
create database `数据库名称` character set utf8 collate utf8_general_ci;
create database `数据库名称` character set utf8mb4 collate utf8mb4_general_ci;
3.3 修改已存在的数据库编码
alter database 数据库名 charset=新的编码
3.4 删除一个数据库
drop database 要删除的数据库名称;
4. 数据表结构的操作
4.1 查看某个数据库里面的数据表的列表
show tables;
4.2 创建数据表
# 基本结构
create table 表名(
字段名1 类型(长度),
字段名2 类型(长度),
字段名3 类型(长度),
……
)
比如:
# 常规的创建数据表
CREATE TABLE `x2` (
`id` smallint(5),
`name` varchar(4),
`sex` tinyint(1),
`mobile` char(11),
`address` varchar(100),
`add_time` datetime
)
# 创建数据表的时候指定数据表的编码
CREATE TABLE `x5` (
`id` smallint(5) DEFAULT NULL,
`name` varchar(4) DEFAULT NULL,
`sex` tinyint(1) DEFAULT NULL,
`mobile` char(11) DEFAULT NULL,
`address` varchar(100) DEFAULT NULL,
`add_time` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
4.2.1 常用字段类型
字段类型 | 意义 | 表示范围 |
---|---|---|
tinyint | 微小整型 | -128-127 ; 0-255 |
smallint | 小整型 | -32768-32767 ; 0-65535 |
mediumint | 中等整型 | -8388608-8388607 ;0-16777215 |
int | 整型 | -2147493648-2147493647;0-4294967295 |
bigint | 大整型 | -9223372036854775808-9223372036854775807;0-18446744073709551615 |
float | 单精度浮点型 | |
double | 双精度浮点型 | |
char | 字符型 | |
varchar | 字符型 | |
text | 文本型 | 支持65535个字符。要求长度+2字节的存储 |
mediumtext | 中等文本型 | 支持16777215个字符。需要长度+3字节的存储 |
longtext | 长文本型 | 支持4294967295个字符。需要长度+4字节的存储 |
datetime | 日期类型 | |
timestamp | 时间戳日期 |
4.2.2 字段约束
名称 | 含义 | 备注 |
---|---|---|
not null | 限制字段值不能为null | |
default | 设置默认值 | |
primary key | 设置主键 | 也可以在最后使用 key(字段名) 的形式设置主键 |
auto_increment | 设置自动增长 | 只能设置主键字段,且类型为整数型 |
unsigned | 设置字段为无符号类型 | |
comment | 注释、说明、备注 |
4.3 修改数据表的列(字段)
增加列(字段)
alter table 数据表名 add 列名以及类型、约束等信息
# 一次增加多列
alter table 数据表名 add (列名1以及类型、约束等信息,列名2以及类型、约束等信息)
修改列(字段)
# 列名必须是已经存在的
alter table 数据表名 modify 列名以及类型、约束等信息
# 旧列名必须存在,新列名可以和旧列名一样,但不能和其它列名相同
alter table 数据表名 change 旧列名称 新列名以及类型、约束等信息
删除列
alter table 数据表名称 drop 列名
4.4 修改数据表的编码
alter table 数据表名 charset=新的编码
4.5 删除数据表
drop table 表名;
4.6 查看建表语句
show create table 数据表名;