代码小白产品经理,要懂的mysql语言(一)
代码小白产品经理,要懂的mysql语言(二)
19.主键与自增
主键primary key 此列不重复,能够区分每一行。
自增auto_increament为数值递增,一张表中只能有一列自增列,且此列必须加索引。
-> create tabel B <
-> id int primary key
-> name char <2>
-> insert into B values <3,li>
->
-> create tabel B <
-> id int primary key auto_increament
-> name char <2>
-> >
20.列的增删改
modify只能改列属性,不能改列名,*int为*属性
-> alter table B
-> add height tinyint unsigned not null default 0
-> desc B
->
-> alter table drop column height
->
-> alter table B change height shengao smallint
->
-> alter table B modify shengao tinyint
21.视图view
从一个表中抽出部分列作结果集,再查询,请将该结果集存起来。
-> create view goods2 as select goods_id,goods_name,(market_price-shop_price) as sheng from goods
更改原表(即物理表)的数据,现表(即虚拟视图)也发生变化。
view视图能否增、删、改:
若视图每一行与物理表一一对应,则可以,若view行由物理表多行经计算得到,则不可以。
-> update goods set age=age+1 where set_id=3
22.视图algorithm(视图算法)
视图放哪了?
对于简单查询形成的view,再对view查询时,如where、order等,可以把建视图语句加查视图语句合并形成查物理的语句,这种视图算法叫marge合并。
-> veiw algorithm
-> creat view goods2 as select goods_id,goods_name,shop_price,shop_market from goods
-> select * from goods2 order by shop_price limit 3
->
-> creat view goods as select goods_id,goods_name,shop_price,shop_market from goods order by shop_price limit 3
->
-> create algorithm=marge view goods3 as select goods_id,goods_name from goods
23.表/视图管理语句
show tables:查表,查看库下有哪些表
desc B:查表/视图的结构,有哪几列,列类型是什么
drop table:删除表,若不能正确执行,会报错
drop view:删除视图
show create table A 、show create view A:查看建表/视图过程,两者可正常执行,且一样(即show create table A = show create view A)
show table status:查看表信息,查看所有表
-> show table status where name='goods'
更改表名称
-> rename table goods to good=goods
清空表数据
-> delet from B where id=2
-> insert into B values
-> drop table B
24.索引概念
索引是数据目录,可以快速定位行数据的位置;
索引提高了查询速度,降低了增删改的速度,但是,并非加的越多越好;
一般在查询较频繁的列上加,且重复度低的列上加效果更好;
key:普通索引
primary key:主键索引
unique key:唯一索引
full text:全文索引,中文环境下,全文索引无效,要分词+索引,一般引用第三方解决方案
-> create table B <
-> name char(10)
-> email char(20)
-> key name(name)
-> >
->
-> create table B <
-> name char(10)
-> email char(20)
-> unique key email(email)
-> >
-> desc B
-> insert into B values <'lilei','lilei.com>
索引长度:建索引时,可以只索引列的前一部分内容,比如前10个字符;
索引仅是目录中部分,并不影响插入字符长度;
多列索引:把2列或多列值看成一个整体;
冗余索引:在某个列上,可能存在多个索引。
代码小白产品经理,要懂的mysql语言(四)