mysql数据库-1-1-基础-数据库curd,表结构curd
数据库
主要是通过这个学习到什么?
1,库的操作
2,表的操作,包括查询,多表查询,子查询
3,视图,事务,索引,锁,
数据库操作
1.创建数据库
#创建一个名字为 db_name 的数据库,并指定当前库的编码集为utf8
CREATE DATABASE db_name charset utf8;
2.查看数据库
#查询当前用户下所有数据库
show databases;
3.选择数据库
USE db_name;
4.删除数据库
DROP DATABASE db_name;
表结构操作
1,创建表结构:
语法:
CREATE TABLE 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
)ENGINE=innodb DEFAULT CHARSET utf8;
实例:
create table student(
id int not null auto_increment primary key,
name varchar(250) not null,
age int not null,
sex enum('男','女') not null default '男',
salary double(10,2) not null
)engine=innodb default charset=utf8;
ps: not null :表示此列不能为空
auto_increment :表示自增长,默认每次增长+1
注意:自增长只能添加在主键或者唯一索引字段上
primary key :表示主键(唯一且不为空)
engine =innodb :表示指定当前表的存储引擎
default charset utf8 :设置表的默认编码集
2,查询表结构:
select name,sex from student;
或者: select * from student;
#查看表结构
例: desc student;
#查看创建表信息
show create table student;
mysql怎样查看表的注释
查看表注释的方法
- 方法一:
-- 在生成的SQL语句中看 查看表生成的DDL 注意:表名不加单引号
show create table 表名;
– 在元数据的表里面看
- 方法二:
use information_schema;
select * from TABLES where TABLE_SCHEMA='数据库名' and TABLE_NAME='表名'
两句都要执行
拓展:
- 创建表的时候写注释
create table t_user(
ID INT(19) primary key auto_increment comment '主键',
NAME VARCHAR(300) comment '字段的注释',
CREATE_TIME date comment '创建时间'
)comment = '表的注释';
- 修改表的注释
修改表的注释
alter table 表名 comment '修改后的表的注释';
修改字段的注释
alter table 表名 modify column 字段名 字段类型 comment '修改后的字段注释';
--注意:字段名和字段类型照写就行,如果之前有规定长度 这里也要指定一下
如:alter table t_cal_res_channel MODIFY column resume_channel varchar(30) COMMENT '渠道'
3,修改表结构:
添加表字段
alter table 表名 add 字段名 类型 约束;
例如:
alter table student add age int not null default 0 after name;
//增加一个字段,默认为空
alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL;
//增加一个字段,默认不能为空
alter table user add COLUMN new2 VARCHAR(20) NOT NULL;
ps: after name 表示在name字段后添加字段 age.
修改表字段
方式一:
alter table student modify 字段 varchar(100) null;
方式二:
alter table student change 旧字段 新字段 int not null default 0;
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
alter table table1 change column1 column1 varchar(100) DEFAULT 1.2 COMMENT '注释'; -- 正常,此时字段名称没有改变,能修改字段类型、类型长度、默认值、注释
alter table table1 change column1 column2 decimal(10,1) DEFAULT NULL COMMENT '注释' -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
alter table table1 change column2 column1 decimal(10,1) DEFAULT NULL COMMENT '注释' -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
alter table table1 change column1 column2; -- 报错
alter table tb_http_testcase_step AUTO_INCREMENT=166;
ps:二者区别:
change 可以改变字段名字和属性
modify只能改变字段的属性
删除表字段 :
alter table student drop 字段名;
更新表名称:
rename table 旧表名 to 新表名;
4,删除表结构:
#删除表
drop table 表名;
#清空表
truncate table 表名;
5,复制表结构:
#只复制表结构和表中数据
CREATE TABLE tb2 SELECT * FROM tb1;
ps:主键自增/索引/触发器/外键 不会 被复制
#只复制表结构
create table tb2 like tb1;
ps: 数据/触发器/外键 不会被复制
6,表字段数据类型:
大致可以分为四类:数值、字符串类型、日期/时间和其他类型。
数值型
二进制类型: bit[(M)]
整数类型: tinyint[(m)] int[(m)] bigint[(m) 作用:存储年龄,等级,id,各种号码等
小数型: decimal[(m[,d])](特别的:对于精确数值计算时需要用此类型) FLOAT[(M,D)] DOUBLE[(M,D)] (数值越大,越不准确)
字符型: char (m) varchar(m) text text数据类型用于保存变长的大字符串,
枚举类型(了解): enum
集合类型(了解): set
日期/时间类型: DATE 日期值 TIME 时间值或持续时间 YEAR 年份值 DATETIME 混合日期和时间值 TIMESTAMP 时间戳
技术改变命运