关于mysql的常见操作SQL语句

登陆mysql:  mysql -hlocalhost -uroot -proot

创建数据库:create database dbname charset utf8

查看数据库:show databases;

选择数据库:use dbname;

删除数据库:drop database dbname;

创建数据表: create table tbname (
        id int(10) primary key auto_increment,
        name char(10) not null defaule '',
        .......
        )engine myisam/innodb charset utf8/gbk

设定环境编码的命令:set names gbk;
查看数据表:show tables;

查看建表语句:show create table tbname;

查看表结构:desc tbname;

修改表(增加列):alter table tbname add 列名称 列类型 

修改表(修改列):alter table tbname change 旧列名 新列名 列类型

修改表(删除列):alter table tbname drop 列名称

索引

1. 提高查询速度,但是降低了增删改的速度,所以使用索引时,要综合考虑

2. 索引不是越多越好,一般我们在常出现于条件表达式中的列加索引

3. 值越分散的列,索引的效果越好

索引类型

1. primary key 主键索引

2. index 普通索引

3. unique index 唯一性索引

4. fulltext index 全文索引


修改表(增加主键索引):alter table tbname add primary key(主键所在列名)

修改表(删除主键索引):alter table tbname drop primary key;

修改表(增加唯一索引):alter table tbname add unique index 索引名(列名);

修改表(增加全文索引):alter table tbname add fulltext index 索引名(列名);

修改表(删除普通索引):alter table tbname drop unique index 索引名;

清空数据表内容:truncate tbname;

删除表:drop table admin;

插入数据: insert into tbname (列1,列2,列...) values(val1,val2,val...) 指定值与列一一对应
      insert into tbname values(val1,val2,val3...) 全部列都插入值
      insert into tbname values(val1,val2,val3...),(val1,val2,val3...),(val1,val2,val3...) 插入多行数据

删除数据: delete from tbname where 列名=列值;

修改数据: update tbname set 列名1=新列值1,列名2=新列值2 where 条件;

查询数据: select1,列2,列3 from tbname;

数据类型: 整型 tinyint (0-255/-128-127) smallint (0-65536/-32768-32767) mediumint () int bigint 共5种类型

          unsigned 无符号(不能为负) zerofill (0 填充) M 填充后的宽度

      举例: tinyint unsigned; tinyint(6) zerofill;

数值型:   浮点型: float double 

          格式: float(M,D) D 表示小数位数 unsinged zerofill;

字符型:   char(M) 定长 varchar(M) 变长 text 

      列     实存字符    实占空间

      char(M)   0<=i<=M     M

      varchar(M)    0<=i<=M     i+1

        year        YYYY 范围: 1901~2155. 可输入值2位和4位(如98,2012)

        date        YYYY-MM-DD 如: 2010-03-04

日期时间类型: 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) 条件查询  where   a. select1,列2,列3.. from tbname where 列x=列x值;

                b. 比较运算符 select1,列2,列3.. from tbname where 列x[=|!=|<|>|<=|>=]列x值;

                c. like,not like ('%'匹配任意多个字符,'_'匹配任意单个字符)

                d. in,not in,between and

                e. is null,is not null

      (2) 分组    group by  配合5个聚合函数使用 max(最大),min(最小),sum(求和),avg(求平均),count(统计)

      (3) 筛选    having

      (4) 排序    order by

      (5) 限制    limit

连接查询:

左连接: 例句 select1,列2,列3... from tbnameA left join tbnameB on tbnameA.列1 = tbnameB.列2;

右连接: 例句 select1,列2,列3... from tbnameB right join tbnameA on tbnameA.列1 = tbnameB.列2;

左右连接都是以在左边的表的数据结构为准,沿着左表查询。

内连接是以两张表都有的共同部分数据为准,也就是左右连接的数据之交集。

子查询:

where 型子查询:内层sql的返回值在where后作为条件表达式的一部分

例句: select * from tableA where colA = (select colB from tableB where ...);

from 型子查询:内层sql查询结果,作为一张表,供外层的sql语句再次查询

例句:select * from (select * from ...) as tableName where ...

字符集

客服端sql编码 character_set_client

服务器转化后的sql编码 character_set_connection

服务器返回给客户端的结果集编码 character_set_results

快速把以上3个变量设为相同值: set names 字符集

存储引擎 engine:Myisam/Innodb

1. Myisam  速度快 不支持事务 回滚

2. Innodb  速度慢 支持事务 回滚

事务执行顺序:

a. 开启事务 start transaction

b. 运行sql         

c. 提交,同时生效\回滚 commit\rollback

触发器: trigger

监视地点: 表

监视行为: 增 删 改

触发时间:a fter\before

触发事件: 增 删 改

创建触发器语法:

create trigger tgName

after/before insert/delete/update 

on tableName

for each row

sql 触发语句

删除触发器: drop trigger tgName;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱写代码的马良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值