mysql基础知识回顾

来源:互联网 发布:腾讯nba数据库 编辑:程序博客网 时间:2024/06/06 19:52

​常见的sql语句:


创建数据库:create database if not exists mysql_study character set utf8 collate utf8_general_ci;

查询数据库:show databases like "%mysql%";

查询创建数据库:show create database mysql_study;

删除数据库:drop database if exists mysql_study;

创建表:

    CREATE TABLE `lj` (

      `id` int(11) NOT NULL AUTO_INCREMENT,

      `name` varchar(22) DEFAULT NULL,

      PRIMARY KEY (`id`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

//character set 和 charset都是可以的

删除表:drop table tbl_name;

修改表名:rename table old_name to new_name,old_name1 to new_name1;

添加主键:Alter table tabname add primary key(col) 

删除主键:Alter table tabname drop primary key(col) 

选择:select * from table1 where 范围

插入:insert into table1(field1,field2) values(value1,value2)

删除:delete from table1 where 范围

更新:update table1 set field1=value1 where 范围

查找:select * from table1 where field1 like ’%value1%



修改列:alter table tbl_name [add|drop|change|modify];

    alter table tbl_name add name varchar(22);

    alter table tbl_name drop name;

    alter table tbl_name modify name int(11);

    alter table tbl_name change name mingzi int(11);

    alter table tbl_name character set utf8;

添加外键:

Alter table tbl_name drop foreign key 外键标识;默认会生成,也可以指定

select语句:Select select_expr [from tbl_name] [where] [group by] [having] [order by] [limit]

select 子句有顺序,因此要求严格按照上面的顺序使用!

having:可以知道,where负责先获得结果,而如果需要在结果中再次处理(例如通过结果统计出来的聚合结果),则不能再使用where,

此时where已经执行完毕,因此此时SQL提供给应该使用having再次执行过滤操作。

limit:Limit offset,row_count,表示从offset索引位置开始获取row_count条记录。可以省略offset,默认为0.

删除表数据:delete,truncate

    区别:

    1,truncate 是删除表再创建,delete 是逐条删除

    2,truncate 重置auto_increment的值。而delete不会

    3,truncate不知道删除了几条,而delete知道。


Character_set_client 客户端发送数据编码

Character_set_results客户端接收数据的编码

Set character_set_connection = gbk;连接层编码

Set names  可以设置上面的三个。


每一套,编码字符集都有与之相关的校对规则。

什么是校对规则? 在当前编码下,字符之间的比较顺序什么。

Show collation;

Show character set;

 show variables like 'character_set_%';



知识点详解:

导出

1. 导出一张表

  Mysqldump -u用户名 -p密码 库名 表名 > 文件名(D:/a.sql)

2. 导出多张表

  Mysqldump -u用户名 -p密码 库名 表名1 表名2 表名3 > 文件名(D:/a.sql)

3. 导出所有表

  Mysqldump -u用户名 -p密码 库名 > 文件名(D:/a.sql)

4. 导出一个库 

  Mysqldump -u用户名 -p密码 -B 库名 > 文件名(D:/a.sql)

可以-w携带备份条件

导入:

1. 在登录mysql的情况下:

  Source  备份文件

2. 在不登录的情况下

  Mysql -u用户名 -p密码 库名 < 备份文件


mysql数据类型:三大类型: 数值,时间日期,字符串


存储引擎:也叫表类型,指的是数据表的存储机制,索引方案等配套相关功能。不同的引擎,由于处理方式不同,会带来不同的功能或者相应优化,根据实际需求选择合理的引擎。

最常用的存储引擎:

MyISAM,InnoDB

区别:

MyISAM支持外键,而MyISAM不支持外键

MyISAM支持索引压缩,而Innodb索引和数据是绑定保存不压缩,体积大。

MyISAM是非事务安全型的,而InnoDB是事务安全型的。

InnoDB不支持FULLTEXT类型的索引(新版本的InnoDB也支持)

MyISAM锁的粒度是表级,而InnoDB支持行级锁定。

MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM。

InnoDB表比MyISAM表更安全

    保存的文件的方式不同:

    myisam,一个表,三个文件

    Tbl_name.frm 结构

    Tbl_name.myd 数据

    Tbl_name.myi 索引

    innodb

    一个表一个文件:

    Tbl_name.frm 结构

    所有的innodb表,都使用相同的

    innodb存储表空间在保存数据和索引


0 0
原创粉丝点击