0. 数据库基本定义与规则:
1. 概念:
关键字 | 释义 |
---|---|
数据库 | 保存有组织数据的容器。 |
表 | 某种特定类型数据的结构化清单。 |
表名 | 在同一数据库中必须唯一,但是在不同数据库之间可以存在相同名字的表。 |
模式 | 关于数据库和表的布局及特性的信息。 |
列 | 表中的一个字段,所有表都是由一个或者多个列组成。 |
数据类型 | 每个列都有数据类型。不同数据库可能存在数据类型不兼容现象。 |
行 | 表中的一个记录。 |
主键 | 能够唯一标识表中每一行。每一行都必须有主键,主键不能为空。 |
外键 | 非本表的其他表的主键。 |
1. 数据库脚本注释:
注释类型 | 示例 |
---|---|
“—” | “—这是一条注释 “ |
“#” | 这是一条注释,只能放在行首 |
“/**/” | /*这是一条注释 |
可以注释多行*/ |
一. 数据库安装与管理:
0. 显示已有数据库列表:
mysql> show databases;
1. 数据库创建:
# 规范:
mysql> CREATE DATABASE [IF NOT EXISTS] db_name [CHARACTER SET charset_name]
#举例:
mysql> CREATE DATABASE score CHARACTER set utf8;
2. 数据库使用:
# 规范:
mysql> USE db_name
#举例:
mysql> USE score;
3. 数据库删除:
# 规范:
mysql> DROP DATABASE db_name
#举例:
mysql> DROP DATABASE score;
二. 简单用户管理:
1. 创建用户:
# 规范:
mysql> USE mysql;
mysql> GRANT ALL ON da_name.* TO user_name IDENTIFIED BY 'password';
# 解释:
liyade 所创建的用户名
li_passwd 为该用户分配的密码
score.* 中 * 表示该用户拥有score数据库的所有权限
# 举例:
mysql> USE mysql;
mysql> GRANT ALL ON score.* TO liyade IDENTIFIED BY 'li_passwd';
2. 删除用户:
mysql>Delete FROM user Where User='test';
三. 数据库字符集统一:
1.操作系统:
首先操作系统的字符集为utf8.
使用locate命令查看本机字符集
2. 数据库:
在创建数据库的时候使用CHARACTER SET utf8;
指定了该数据库的字符集也为utf8
3. mysql 客户端:
第三我们还要设置mysql client的字符集:
SET NAMES utf8;
4. CRT :
最后我们将CRT设置为utf8;
四. 语句表:
1. 语句表创建:
# 规范:
mysql> CREATE TABLE TABLENAME (COL_NAME1 TYPE, COL_NAME2 TYPE,...);
# 举例:
mysql> CREATE TABLE table1 (name varchar(100), sex carchar(10), age int, class varchar(100));
2. 语句表TYPE:
TYPE | 说明 |
---|---|
INT | 整数 |
CHAR(LENGTH) | 定长字符串,短于指定长度的空间用空格填充 |
VARCHAR(LENGTH) | 变长字符串,最长为指定长度 |
3. 语句表删除:
# 规范:
mysql> DROP TABLE TABLENAME;
# 举例:
mysql> DROP TABLE table1;
4. 递增主键标记记录项:
(1). 一次创建条记录项时,这些记录项按照一定的序列标记(标号ID):
即一次创建多个记录项,并且这个表的一个列作为像编号一样的存在,自动向上增长。
(2). 举例:
# 规范
mysql> CREATE TABLE table2(ID int(11) NOT NULL auto increment. NAME varchar(20), AGE int, PRIMARY KEY (ID));
# 解读:
NOT NULL 表示这个ID项不可以出现空值,必须有数据。
auto increment 表示自动增长
PRIMARY KEY(ID) 主键
# 举例:
mysql> CREATE TABLE table1 (ID int (11) NOT NULL auto_increment, name varchar(100), age INT, PRIMARY KEY(ID));