文章目录
数据库
数据库的创建
CREATE DATABASE [IF NOT EXISTS 数据库名
设置数据库名
[DEFAULT] CHARACTER SET 字符集
字符集
[DEFAULT] COLLATE 排序规则
排序规则
注:[ ]内的内容可有可无,非必须条件
排序规则
utf8_general_ci
:不区分大小写,这个你在注册用户名和邮箱的时候就要使用。
utf8_general_cs
:区分大小写,如果用户名和邮箱用这个 就会造成不良后果
utf8_bin
:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容
修改数据库
ALTER DATABASE 数据库名
和数据库的创建格式一样,除第一行改变,其余一样。
删除数据库
DROP DATAVASE 数据库名;
数据类型介绍
数值型:
- 整型:INT
- 小数:浮点型:float(M,D),double(M,D),decima(M,D) ,(M为全长,D为小数点后长度。)
字符型:
- char:固定长度字符串,char(10)不管实际使用多少,最后都占十个字符,用空格补全。
- varchar:可变长度字符串 ,varchar(20)最大20个字符,但是实际占用多少就是多少。
日期型:
- date:日期类型 yyyy-MM-dd 2020-03-02
- time:事件类型 hh:mm:ss 19:47:30
- timestamp:时间戳 1970-1-1至2038-12-31 yyyyMMddhhmmss (受时区影响,受MySQL版本影响)
数据表
数据表的创建
CREATE TABLE 表名(
字段名 字段类型 [字段约束],
字段名 字段类型 [字段约束],
字段名 字段类型 [字段约束],
字段名 字段类型 [字段约束]
);
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options] [select_statement]
create_definition: 每个字段都可以包括如下属性的定义:
col_name type:
- [NOT NULL | NULL]:字段是否运行为空 。
- [DEFAULT default_value] :为字段定义默认值 。
- [AUTO_INCREMENT]:字段是否为自动增长列,只有整型才能用 。
- [UNIQUE [KEY] | [PRIMARY] KEY]:字段是否唯一键或主键。
- [COMMENT ‘string’]:为字段增加描述性文字。
table_options:
ENGINE|TYPE = engine_name:选项用于为表指定存储引擎 。
AUTO_INCREMENT = value:为表设置 初始的 AUTO_INCREMENT 值 。
[DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]:用于为表 指定一个默
认字符集以及排序规则 。
COMMENT = ‘string’:表的注释,最长 60 个字符 。
select_statement:
该选项表示新建的表是基于已有的查询结果集创建的。
注:[ ]内的内容可有可无,非必须条件
创建临时表
CREATE TEMPORARY TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options] [select_statement]
把正常建表当中的[ ]改为 TEMPORARY就可以创建临时表了,其余写法和正常建表一样。
添加数据
insert into 数据表命 values('数据','数据');
删除数据库表
drop table +数据表名;
清空数据表
truncate table 表名;
复制表的数据和结构
CREATE TABLE 新表 SELECT * FROM 旧表
复制表的结构
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
或
CREATE TABLE 新表 LIKE 旧表