《MySQL入门》
来源:互联网 发布:淘宝的软件靠谱么 编辑:程序博客网 时间:2024/06/11 12:01
MySQL登录
-V, --version # 查看版本信息-u #用户名-p #密码-h #服务器地址-P #端口号--prompt '>>>' #修改提示符为>>>mysql -uroot -p -h127.0.0.1 -P3306 #h,P均为默认设定,可以不写exit/quit/\q #退出prompt >>> #修改提示符为>>>#特殊提示符有:\D,完整日期;\d,当前数据库;\h,服务器名称;\u,当前用户SELECT VERSION(); #版本信息SELECT NOW(); #当前时间 --> 2017-11-12 15:43:10SELECT USER(); #当前用户 --> root@localhost
其他操作
show error/warnings; #查看错误信息
操作数据库
show databses; # 显示所有数据库create database if t2 character set=utf8/gbk; # 创建数据库show create database test; #查看创建数据库的信息,如查看编码方式为gbk/utf8alter database test character set utf8; #修改数据库t3编码方式为utf8drop database test; 删除数据库select database(); # 显示当前数据库use test; # 选择数据库
数据类型
整数
字节与储存范围的换算:1个字节,8位,有符号位
浮点型
FLOAT[(M,D)],储存范围:-3.40E38-1.76E-38,0,1.76E-38到3.40E38
M总位数,D小数点后位数,精度最大7为小数.
DOUBLE[(M,D)],储存范围大约是FLOAT的10倍.
字符型
CHAR,0-255,定长(补足位会用0补齐);VARCHAR,0-65535,变长.
TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXT.
ENUM(‘var1’, ‘var2’,…),SET(‘var1’, ‘var2’),SET不用与ENUM,可以选多个,即取子集.
表操作
CREATE TABLE tb1( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, # AUTO_INCREMENT必须和PRIMARY KEY主键一起使用 username VARCHAR(20) NOT NULL UNIQUE KEY, # NOT NULL非空,UNIQUE KEY唯一约束 sex ENUM('0', '1', '2') DEFAULT '2', # DEFUALT默认‘2’ salary FLOAT(8,2) UNSIGNED);SHOW CREATE TABLES tb_name # 查看创建表的命令desc tb_name #等价于SHOW COLUMNS FROM tb_name,查看表结构SELECT * FROM tb1; # 查看tb1中所有记录.*表示选中所有字段.# 添加单列ALTER TABLE tb_name ADD col_name col_definition [FIRST|AFTER col_name]# 添加多列,不能指定插入位置,只能在最后添加ALTER TABLE tb_name ADD (col_name column_definition,...)# 删除列ALTER TABLE tb_name DROP col_name;# 多操作ALTER TABLE tb_name DROP col_name ,ADD col_name col_definition,...# 修改列定义alter table tb_name change old_col_name new_col_name col_definition;alter table tb1 change id ID tinyint unsigned first;# 数据表更名alter table tb_name rename new_tb_namerename table tb_name to new_tb_name [, tb_name to new_to_name,...] # 为多张数据据表更名
NOT NULL:非空
AUTO_INCREMENT:必须与主键组合使用,默认起始值1,每次增量1
PRIMARY KEY:每张表只有一个主键,字段唯一,自动设置为NOT NULL
UNIQUE KEY:每张表可以有多个, 字段唯一,可以为NULL
DEFAULT:默认值
约束
列级约束和表级约束(针对2个以上字段)
NOT NULL/PRIMARY KEY/UNIQUE KEY/DEFAULT/FOREIGN KEY
外键约束
- 父表和子表相同的储存引擎InnoDB,禁止使用临时表.
- 外键列和参照列,数字必须相同(类型,长度,有无符号),字符类型长度可以不同.
- 外键列和参照列必须创建索引,外键列不存在索引,MySQL自动创建.
- FOREIGN KEY物理外键约束,CASECADE为父表中删除和更新记录,子表中同样删除更新.
CREATE TABLE provinces( # 父表 id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, # 参照列,有索引 pname VARCHAR(20) NOT NULL);CREATE TABLE users( # 子表 id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL, pid SMALLINT UNSIGNED, # 外键列,数据类型必须相似;没有索引但会自动创建 FOREIGN KEY (pid) REFERENCES provinces (id) ON DELETE CASCADE; # 设置外键约束 ); SHOW CREATE TABLE provinces; # 可查看表的储存引擎SHOW INDEXES FROM provinces\G; # 查看索引# 添加主键约束ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] PRIMARY KEY (index_col_name,...)# 添加唯一约束ALTER TABLE tb_name ADD UNIQUE [INDEX|KEY] (index_col_name,...)alter table tb5 add unique (username);# 添加外键约束ALTER TABLE tb_name ADD FOREIGN KEY (index_col_name)reference_deinitin# 添加/删除默认约束ALTER TABLE tb_name ALTER col_name {SET DEFAULT iteral|DROP DEFAULT}# 删除主键约束alter table tb_name drop primary key# 删除唯一约束/索引alter table tb_name drop {index|key} index_name# 删除外键约束# alter table tb_name drop foreign key fk_symbolshow create table tb5; # 查看fk_symbolalter table tb5 drop foreign key tb5_ibfk_1; # 删除外键约束alter table tb5 drop index pid; # 索引还在,可以删除
记录操作
# 插入记录insert tb1 values('Bing', 25, 3783.4); #不指定列,所有列都要插入insert tb1 (username, salary) values('Wo', 4502.44); #插入指定列,部分插入# 列可以为null或设置默认值的,insert时可以省略列. 如以上tb1有id字段(设为auto_increment),可以省略列insert users values(default, 'Wu', '123', 2*10+1, 0); # 也可以是表达式# 一次插入多条,比多次插入一条好快.insert tb values('Bing', 25, 23.4), ('Wu', 34, 234.3); # 逗号(,)分隔,同时插入多条记录# 插入索引出的数据insert tb1(id, username) select ID, uname from tb2;# insert很耗时,会降低等待处理select性能,low_priority可以跟在insert/update/delete之后,降低其性能,提高select性能.insert low_priority tb values('Bing', 25, 232.4);# 更新,在更新多行时,如果某行发生错误,则整个update操作被取消. update users set age=age+1, sex=1 where id>=4; #逗号(,)分隔,更新多个字段,where添加条件# 删除delete from users where id=8; # 若不加where,则删除全部记录truncate table tb4; # 清空表,速度快于delete from tb4;
阅读全文
0 1
- MySql入门
- MYSQL入门
- MySQL入门
- MySQL 入门
- MYSQL入门
- mysql入门
- MySQL 入门
- Mysql入门
- MySql入门
- mysql入门
- mysql入门
- Mysql入门
- MySQL入门
- mysql入门
- mysql入门
- mysql入门
- mysql入门
- MySQL入门
- Hello World 实例来介绍如何用 Webpack 设置 React 开发环境
- QT资料搜集页
- 声学特征 PNCC
- output标签实现滑块输出值跟踪
- 编译caffe出错
- 《MySQL入门》
- 集合框架
- 解决u-boot 2016.11 ”ERROR: Makefile:1385: recipe for target 'checkarmreloc' failed”
- 如何用C++实现自己的Tensorflow
- javascript中call apply bind详解
- sigmoid和softmax总结
- SSH项目整合碰到异常及解决方法
- 简单三色塔(c/python略)
- ### net.sf.json.JSONException: There is a cycle in the hierarchy!