mysql知识测试_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.4 删除数据库: drop database dbname;

3: 表级操作:

3.1 显示库下面的表 show tables;

3.2 查看表的结构: desc tableName;

三、创建表

1. 查看表的创建过程: show create table tableName;

2. 创建表:

create table tbName ( 列名称1 列类型 [列参数] [not null default ], ....列2... .... 列名称N 列类型 [列参数] [not null default ] )engine myisam/innodb charset utf8/gbk

创建表例子:

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. 修改表

1. 修改表之增加列:

alter table tbName add 列名称1 列类型 [列参数] [not null default ] #(add之后的旧列名之后的语法和创建表时的列声明一样)

例子:alter table studenr add gender varchar(10) not null ;

2. 修改表之修改列

alter table tbName change 旧列名 新列名 列类型 [列参数] [not null default ] (注:旧列名之后的语法和创建表时的列声明一样)

例子:alter table student change sname name varcher(10) not null;

3. 修改表之减少列: alter table tbName

drop 列名称;

例子:alter table student drop sname;

注意:修改表列用 aler,修改表数据用 update

删除表列用 drop ,删除表内容用 datele

对表结构修改要加table,修改表内容不用

4. 修改表之增加主键

alter table tbName add primary key(主键所在列名);

例:alter table goods add primary key(id) 该例是把主键建立在id列上

5. 修改表之删除主键

alter table tbName drop primary key;

6. 修改表之增加索引

alter table tbName add [unique|fulltext] index 索引名(列名);

7. 修改表之删除索引

alter table tbName drop index 索引名;

8. 清空表的数据

truncate tableName;

四:列类型讲解

列类型: 整型: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 特性:不用赋值,该列会为自己赋当前的具体时间

五:增删改查基本操作

1 .插入数据 insert into 表名(col1,col2,……) values(val1,val2……); -- 插入指定列 insert into 表名 values (,,,,); --

插入所有列 insert into 表名 values -- 一次插入多行 (val1,val2……), (val1,val2……),

(val1,val2……);

例子:insert into student (sid,sname,gender) values

(1,'李三','女'),

(2,'赵四','男');

2.修改数据 update tablename set col1=newval1, col2=newval2, ... ... colN=newvalN

where 条件;

例子:update student set sname='阿花' where sid=2;

3.删除数据

delete from tablenaeme where 条件;

例子:delete from student where sid=2 and name='李三';

4. select 查询 (1) 条件查询 where a. 条件表达式的意义,表达式为真,则该行取出 b. 比较运算符 = ,!=,< > <= >= c. like , not like ('%'匹配任意多个字符,'_'匹配任意单个字符) in , not in , between and d. is null , is not null (2) 分组 group by 一般要配合5个聚合函数使用:max,min,sum,avg,count (3) 筛选 having (4) 排序 order by (5) 限制 limit 5. 连接查询 6.1, 左连接 ..表1 left join 表2 on 连接条件 table A left join table B on tableA.col1 = tableB.col2 ; 例句: select 列名 from table A left join table B on tableA.col1 = tableB.col2 2. 右链接: 表1 right join 表2 on 连接条件 3. 内连接: 表1 inner join 表2 on 连接条件 内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件

左外连接:左边表数据行全部保留,右边表保留符合连接条件的行

右外连接:右边表数据行全部保留 ,左边表保留符合条件的行

全外连接:全外连接是在等值连接的基础上将左表和右表的未匹配数据全部加上

几个表直接连接:select * from 表1,表2,表3;

4.子查询 where 型子查询:内层sql的返回值在where后作为条件表达式的一部分 例句: select * from tableA where colA = (select colB from tableB where ...); from 型子查询:内层sql查询结果,作为一张表,供外层的sql语句再次查询 例句:select * from (select * from ...) as tableName where ....

5.where和having 的区别

having 字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录, 也就是在group by 和having字句前,而having 字句在聚合函数后对组记录机进行筛选

having一般跟在group by 之后,执行记录组选择的一部分工作的,where则是执行所有数据来工作的,再者having 可以用聚合函数如 having sum(qty)>1000

6.count的使用方法

count(1)和count(*) 统计所有列

count(列名)统计包括列名那一列

7. 字符集 客服端sql编码 character_set_client 服务器转化后的sql编码 character_set_connection 服务器返回给客户端的结果集编码 character_set_results 快速把以上3个变量设为相同值: set names 字符集 存储引擎 engine=1\2 1 Myisam 速度快 不支持事务 回滚 2 Innodb 速度慢 支持事务,回滚 ①开启事务 start transaction ②运行sql; ③提交,同时生效\回滚 commit\rollback 触发器 trigger 监视地点:表 监视行为:增 删 改 触发时间:after\before 触发事件:增 删 改 创建触发器语法 create trigger tgName after/before insert/delete/update on tableName for each row sql; -- 触发语句 删除触发器:drop trigger tgName;

8. 索引 提高查询速度,但是降低了增删改的速度,所以使用索引时,要综合考虑. 索引不是越多越好,一般我们在常出现于条件表达式中的列加索引. 值越分散的列,索引的效果越好

索引类型 primary key

主键索引 index 普通索引

unique index 唯一性索引

fulltext index 全文索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值