存在的记忆 - SQL习题
type: channel
link: https://www.looaon.com/index.php/tag/SQL习题/
items: mysql复习秘籍

mysql复习秘籍
type: item
date: 2018-08-17T15:22:00+08:00
description: mysql复习 一:复习前的准备 1:确认你已安装wamp 2:确认你已安装ecshop,并且ecshop的数据库名为shop 二 基础知识: 1.数据库的连接 mysql -u -p -h -u 用户名 -p 密码 -h host主机 2:库级知识 2.1 显示数据库: show databases; 2.2 选择数据库: use dbname; 2.3 创建数据库: create database dbname charset utf8; 2.3 删除数据库: drop database dbname; 3: 表级操作: 3.1 显示库下面的表 show tables; 3.2 查看表的结构: desc tableName; 3.3 查看表的创建过程: show create table tableName; 3.4 创建表: create table tbName ( 列名称1 列类型 [列参数] [not null default ], ....列2... .... 列名称N 列类型 [列参数] [not null default ] )engine myisam/innodb charset utf8/gbk 3.4的例子: create table user ( id int auto_increment, name varchar(20) not null default '', age tinyint unsigned not null default 0, index id (id) )engine=innodb charset=utf8; 注:innodb是表引擎,也可以是myisam或其他,但最常用的是myisam和innodb, charset 常用的有utf8,gbk; 3.5 修改表 3.5.1 修改表之增加列: alter table tbName add 列名称１ 列类型 [列参数] [not null default ] #(add之后的旧列名之后的语法和创建表时的列声明一样) 3.5.2 修改表之修改列 alter table tbName change 旧列名 新列名 列类型 [列参数] [not null default ] (注:旧列名之后的语法和创建表时的列声明一样) 3.5.3 修改表之减少列: alter table tbName drop 列名称; 3.5.4 修改表之增加主键 alter table tbName add primary key(主键所在列名); 例:alter table goods add primary key(id) 该例是把主键建立在id列上 3.5.5 修改表之删除主键 alter table tbName drop primary key; 3.5.6 修改表之增加索引 alter table tbName add [unique|fulltext] index 索引名(列名); 3.5.7 修改表之删除索引 alter table tbName drop index 索引名; 3.5.8 清空表的数据 truncate tableName; 4:列类型讲解 列类型: 整型:tinyint (0~255/-128~127) smallint (0~65535/-32768~32767) mediumint int bigint (参考手册11.2) 参数解释: unsigned 无符号(不能为负) zerofill 0填充 M 填充后的宽度 举例:tinyint unsigned; tinyint(6) zerofill; 数值型 浮点型:float double 格式:float(M,D) unsigned\zerofill; 字符型 char(m) 定长 varchar(m)变长 text 列 实存字符i 实占空间 利用率 char(M) 0<=i<=M M i/m<=100% varchar(M) 0<=i<=M i+1,2 i/i+1/2<100% year YYYY 范围:1901~2155. 可输入值2位和4位(如98,2012) 日期时间类型 date YYYY-MM-DD 如:2010-03-14 time HH:MM:SS 如:19:26:32 datetime YYYY-MM-DD HH:MM:SS 如:2010-03-14 19:26:32 timestamp YYYY-MM-DD HH:MM:SS 特性:不用赋值,该列会为自己赋当前的具体时间 5:增删改查基本操作 5.1 插入数据 insert into 表名(col1,col2,……) values(val1,val2……); -- 插入指定列 insert into …