sql学习

执行顺序:from where group by having select distinct union order by


mysql
一、mysqladmin mysql管理工具
1.修改密码 mysqladmin -u root password "newpassword"
2.关闭mysql服务器:mysqladmin -u root -p shutdown
二、mysql mysql客户端工具
三、mysqld mysql服务器
1.启动mysql /usr/bin/mysqld_safe &
四、表操作
1.PASSWORD("123456") 函数可以进行加密
2.添加用户:在mysql数据库的user表中添加,并且要flush privileges
3.查看表的索引:show index from table
4.输出数据库系统的性能及统计信息: show table status from databasename like "runoob%"\G 输出databasename中表名以runoob开头的信息 \G表查询结果按列打印
5.建表:
create table if not exists 'runoob'
{
runoob_id int unsigned auto_increment,
runoob_title varchar(100) not null,
sub_data DATE,
PRIMARY KEY (runoob_id)
} ENGINE=InnoDB DEFAULT CHARSET=utf8
6.删除表
drop table tablename;
7.插入数据
insert into tablename() values()
8.查询
select columa from table [where BINARY clause] [limit n] [offset m] //limit 设定返回记录数,offset指定select开始查询的数据偏移量 BINARY表示区分大小写,默认是不区分大小写
9.update tablename set field1=newvalue,field2=newvalue where fieldid=3
10.删除数据 delete from tablename where clause
11.where field like "%com",结尾含有com
12.order by field asc升序,desc降序
13.连接
1.inner join获取两个表的匹配记录  select * from tablea join tableb on tablea.field=tab.field
2.left join 获取左表所有记录和右表的匹配记录
3.right join获取右表的所有记录和左表的匹配记录
14.NULL值处理,不能使用=NULL或!=null,要使用
field IS NULL//为NULL,返回true
field IS NOT NULL//不为空,返回true
<==> 比较操作符,当比较的两个值为null,返回true

15.正则表达式:.匹配除'\n'外任何单个字符。如果要匹配包含'\n'在内的任何字符,使用[.\n]
1.where field REGEXP '^ST'
16.事务:用于处理操作量大,比较复杂的数据,如要删除一个人员时,也要删除和这个人员相关的邮箱,文章等,这些sql就构成了一个事务
1.mysql中只有使用了innodb数据库引擎的库或表才支持事务
2.要么全部执行,要么都不执行
3.只用来管理insert,update,delete语句
4.使用方法:
BEGIN或START TRANSACTION 开启一个事务
COMMIT 提交事务
ROLLBACK 回滚事务
SAVEPOINT identifier 在事务中创建一个保存点,一个事务可以有多个保存点
RELEASE SAVEPOINT identifier,删除一个保存点,当没有保存点时,会抛出一个异常
ROLLBACK TO identifier 回滚到标记点
SET TRANSACTION 设置隔离级别,有READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ和SERIALIZABLE
SET AUTOCOMMIT=0 不自动提交,=1自动提交
17.修改表字段 alter table [drop add modify] rename]
1.修改表名。alter table tablename rename to newtablename.
2.删除字段默认值 alter table tablename alter field drop default;
3.修改字段默认值 alter table tablename alter field set default 1000
4.指定默认值 alter table tablename modify field bigint not null default 100
5.修改类型 alter table tablename modify filed char(10)
6.添加主键 alter table tablename modify aaa int not null 先确保不为空
alter table tablename add primary key(aa)
7.删除主键 alter table tablename drop primary key
18.索引 
1.分单列索引和组合索引。索引也是一张表,保存了主键和索引字段,并指向实体表的记录。索引缺点:虽然提高了查询,但降低了更新表的速度,如insert,update,delete
2.创建索引 create index indexname on tablename(filed(length)) 对于char,varchar length可以小于实际长度,如果是BLOB和TEXT类型,必须指定length
3.添加索引 alter table tablename add index indexname(columnName)
4.创建表时,指定索引  index [indexname] (field(length))
5.删除索引 drop index [indexname] on mytable
6.唯一索引 unique indexname(field)
7.全文索引 fulltext indexname(field)
8.显示索引 show index from tablename
19.临时表:只在当前连接可见,关闭连接后,自动销毁
1.创建 create temporary table tablename
2.手动删除临时表 drop table tablename
20.复制表,包含表结构,索引,默认值。步骤:
1.获取建表语句 show create table tablename\G
2.修改获取的建表语句的表名,并执行
3.拷贝数据:insert int tableb(columa,columb) select columa,columb from tableb;
21.sql注入 
1.软件一般采用sql注入检测工具jsky,采用mdcsoft-ips可以有效防御sql注入,xss攻击
22.导出表
1.导出数据 select * from tablea into aaa.txt
2.导出sql格式数据 mysqldump -u root -p dbname table > aa.txt
23.group by分组
1、在分组基础上统计 with ROLLUP
select name,sum(singin) as singin_num from tablea group by name with ROLLUP;先按name分组,然后再将每个分组中singin字段相加
24.union 结果合并.将两个或多个select 的结果,删除重复后,合并到一个结果集中





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值