1 show databases; //查看数据库
2 use test; //使用数据库test
3 show tables; //查看数据库中的表
4 select * from biao1 //查看biao1的数据
5 root 123456 管理员登录 的账号和密码
6 mysql -u root -p 以管理员身份登录;
7 show columns from biao1 //查看biao1
8 create table chengji(yingyu int,yuwen int,shuxue int);在表chengji中加入 yingyu,yuwen,shuxue字段
9 alter table chengji add meishu varchar(50) not null //向表chengji中添加字段meishu;
10 drop table chengji //删除表chengji;
11 rename table chengji to chengji2 ;//把成绩改名为成绩2
12 select * from chengji where meishu=30;//查询在表chengi中meishu=30的字段
13 update chengji set yingyu=90,shuxue=111 where meishu=90//在表chengji中将meishu=90的列中的yingyu shuxue,改成90,111;
14 INSERT INTO lao (yingyu ,shuxue , yuwen ,meishu )VALUES (‘1’,’2’,’3’,’4’);//在l数据库laoshi中的表chengji中 的yingyu,shuxue,yuwen,meishu的字段添加 1,2,3,4 数据
insert into chengji values(20,20,30m,21)//向成绩里面加入数据
15 select * from chengji order by shuxue asc/desc //把成绩表 chengji 中的shuxue 按升序/降序排列
16 select sum(shuxue) from chengji;//求shuxue的总成绩和 avg()平均值 max()最大值 min()最小值 count(*)计算数据条数
17 delimiter // 设置以//为结束符号
18 create procedure cao(in x int) //创建存储过程cao
19 create function cao(x int)//创建存储函数cao 括号内为参数
20 declare a int (declare a int default 10 ) 定义局部变量a
21 set @a=1 //定义全局变量 a
22 select * from chengji limit 5 //返回chengji的前5行数据;
23 select * from chengji where yingyu like ‘%2’;//查询chengji中yingyu中以2结尾 的记录(2% 以2开头 %2%包含2 a_b 被ab夹住的数据)
24 PRIMARY KEY(Id_P) ;//设置主键,即唯一标识。
25 Id_P int NOT NULL ;// 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
26 CHECK (Id_P>0);//给Id_P添加约束
27 truncate table chengji;//清除表 chengji的数据
28 DROP DATABASE laoshi;//删除数据库 laoshi
29 DROP TABLE chengji ;//删除表chengji
30 ALTER TABLE chengji ADD gaoshu date ;//在表chengji中添加gaoshu列
31 ALTER TABLE chengji DROP COLUMN gaoshu ;//在表chengji中删除gaoshu列
32 ALTER TABLE chengji ALTER COLUMN gaoshu year;//在表chengji中改变gaoshu类型
33 select avg(yuwen) as waiyu from chengji;//计算chengji表中yuwen的平均数
34 SELECT MAX(yuwen) AS yuwen FROM chengji;//计算chengji表中yuwen列表的最大值(min sum )
35 SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer ;//合计表Orders中每个项目的总和
36 SELECT UCASE(LastName) as LastName,FirstName FROM Persons;//Persons中查找LastName,FirstName,并且把LastName的项目换成大写的
37 SELECT LCASE(LastName) as LastName,FROM Persons;//查找Persons表中的LastName,并将他换成小写的
38 select MID(yuwen,1,3) as dwa from chengji;//查找chengji表中yuwen的前三个
39 select len(waiyu) as waiyu from laoshi;//查询laoshi中waiyu字段的长度
40 SELECT NOW() FROM table_name;//查询当前表中的时间
41 select yingyu,yuwen,meishu,now() as timedate from chengji;//给chengji表中的yingyu,yuwen,meishu,添加时间记录
42 select * from news order by id;按照ID升序排列
43 select * from news order by id desc;按照ID降序排列
44.SELECT * FROM cdr_csys_business_record ORDER BY add_time DESC //按时间排序
45.SELECT * FROM cdr_csys_business_record WHERE add_time>=’2016-08-20 00:00:00’ AND add_time<=’2016-08-30 00:00:00’ ORDER BY add_time DESC //在一个时间段内按时间大小排序
46.SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ 模糊查询
47.SELECT DISTINCT store_id FROM cdr_csys_business_record //disinct 去掉重复的东西
48.设置事务 :begin(开始)->sql查询语句->commit()事务结束 提交事务
49.读锁(InnoDB表):begin(开始)->sql查询语句 例如:selecct max(x) from table_name for update (update为一个跟新锁,在本事务未提交以前,其他用户不能对该表进行次操作)->commit()事务结束 提交事务
50.自动提交(InnoDB表):(一般情况下一个用户对一个表进行某个操作后,语句都是自动提交的,其他的用户都可见。是因为AUTOCOMMIT被默认为1)当前操作中如果将设置AUTOCOMMIT=0时 其他的用户将不能看到当前操作的是结果 除非本用户提交事务 COMMIT() ;AUTOCOMMIT=0只在本会话中有效;
51.深入事务行为:(begin,alter table,create index,rename table,truncate,drop table,drop databases)这些命令即使被锁住了(放在了begin里面)当这些命名失败的时候,会自动提交事务,锁也被释放了。
52.行级锁(上述几个情况)只对事务安全的表类型(BDB和InnoDB)有效。
53.表级锁:读锁和写锁 读锁表示只对表进行读操作,写操作被锁。写锁表示在上锁的那段时间没有读和写的操作。lock table table_name {read|write} 锁一张表 unlock table_name 解锁一张表 (锁只对其他的用户有效) 写锁的优先级高于读锁。
例子:在window1中 lock table innotest read; //表示对innotest表进行都读表 然后再在window2中 INSERT INTO innotest(f1) values(8) //插入数据,此时必须等待window1中 的解锁操作 unclock tables 后才能执行 插入;
54.索引:主键、唯一索引、全文索引和普通索引。key一般是逻辑结构,index一般指实际的物理结构
55.show columns from table_name 查询一个表的索引情况;
56.主键:就是值唯一并且没有值为NULL的域的索引。在创建表的时候创建主键,需要在域定义的结尾使用PRIMARY KEY以及域的列表 。在一已经存在的表上创建主键,可以用ALTER关键字,创建主键索引:例如:alert table table_name add primary key(fielaname1 […]); 或者: alter table innotest ADD PRIMARY KEY(f1,f2);
57.普通索引:不是主键的索引允许重复值,在创建表的时候,同时创建索引是最好的方法。例如 create table table_name(x,c,v,b,index[y,i,o]);在创建表的时候创建。或者:alter table table_name add indexindexname;create index indexname on table_name(fielaname1[,x,y..]);
58.全文索引:对大表中的文本域进行索引的:创建表的时候创建全文索引:create table table_name(filedname columntype,fielaname2 columntype,fulltext (index)(filedname[,fielaname2….])) 或者表已经创建好了以后:alter table table_name add fulltextindexname;
59.噪音单词:任何在百分之五十以上的域出现的单词就被认为ushi噪音单词,他们会被忽略
60.唯一索引:不允许有重复的记录,与其他的普通索引一样:create table table_name(filedname columntype,fielaname2 columntype,unique(filedname [,fielaname2….])); 同上;;如果索引只包含一个域,这个域不能包含重复值。如果索引包含多个域,单个域的值是可以重复的,而组成整个索引的域的值不能重复。
61.从域的部分创建索引:不使用全部的域来创建索引,比如只使用前十个字符来创建。例如:alter table table_name add index(surname(10));
62.自动增加域:必须是数字主键或者数字唯一索引:auto_increment :create table table_name(filedname int auto_increment,{fielaname2…..} primary key(filedname));
63.返回和重置自动增加值:LAST_INSERT_ID()返回最近插入的自动增加值。(id) auto_increment=1设置自动增加计数器为1; TRUNCATE 清除表,重置自动增加器。
64.删除或改变索引:删除主键:alter table table_name drop primary key 删除普通、唯一或全文索引:alter table table_name drop index indexname,或者drop index indexname ON table_name;显示全部的索引名:show keys from table_name;
65.使用最左边的前缀:在任何的索引被使用的时候都使用最左前缀,即查询的列表的顺序要按照创建索引的顺序来查。否则会破坏索引。