mysql

1.了解mysql (每条sql语句都必须以分号结束,sql语句不区分大小写)use databasename; //使用某个数据库show databases; //显示当前的所有数据库show tables;//显示数据库中的列表show columns from tablename;//显示表中的列describe tablename;//显示表中的列 可以认为describe是show columns from的快捷键show create database databasename;//显示特定的创建的databasename的信息show create table tablename;//显示特定的创建的tablename的信息show status;//用于显示广泛的服务器状态信息show grants;//用于显示授予用户(所有用户或者特定用户)的安全权限show errors;//用于显示服务器错误消息show warnings;//用于显示服务器警告消息更多关于show的使用 请使用命令:help show;2.select检索数据select sessionname from tablename;//利用select语句从tablename表中检索名为sessionname的列select sessionname1,sessionname2,... from tablename;//利用select语句从tablename表中检索多个列select * from tablename;//检索tablename中所有的列select distinct sessionname from tablename;//检索并显示不同的列 distinct作用是令重复的列只会显示一次select distinct * from tablename;//检索所有的列,distinct修饰的是所有列 并不是靠着最近的那个列select distinct sessionname from tablename limit 5;//返回检索到的前5条数据select distinct sessionname from tablename limit 5,8;//返回检索到的从第5条数据开始的后面8条select tablename.sessionname from databasename.tablename;//表名和列名都用表和数据库限定了 order by(有顺序的) (放在 limit子句之前的位置,否则报错)select sessionname from tablename order by sessionname;//利用select语句从tablename表中检索列并按照session首字母顺序排列 默认是a-z 从小到大select sessionname from tablename order by sessionname1,sessionname2;//先按照sessionname1排序再按sessionname2排序select sessionname from tablename order by sessionname desc;//指定排序方向是反方向也就是z-a 从大到小where(过滤数据)(放在from子句之后order by子句之前的位置,否则报错)select sessionname from tablename where id=3;//只检索id=3的记录select sessionname from tablename where id<>3;//只检索id不等于3的记录select sessionname from tablename where id between 5 and 10;//只检索5到10范围内的记录select * from tablename where id=3 and name='songjiang';//检索满足两个条件的记录select * from tablename where id<4 and number>258;//检索满where条件的记录select * from tablename where id in(3,4);//此处的in操作符和 or很相似 该语句等价与,,,,where id=3 or id=4; 只不过in使用起来更加美观,也更加放百年效率也比or要高select * from tablename where id not in(3,4);//匹配除了in语句内部的那些记录通配符过滤操作like指定后面的是通配符匹配% 百分号通配符 表示任何字符出现任何次数 %不匹配NULLselect * from tablename where name like 'song%';//匹配name中以song开头的数据记录_ 下划线通配符 表示匹配任意一个字符 只能匹配一个字符 不能多也不能少select * from tablename where name like 'song_';//匹配名字中类似songf的记录正则表达式过滤regexp 指定后面的是正则表达式,,,,,正则表达式 后面专题来做3.insert插入数据insert into tablename(id,name,address) values(id,name,address);//向表中插入数据insert into tablename(id,name,address) select id,name,address from tablename2;//向表中插入检索的数据注意tablename和插入数据的字段对应,为了更好的让insert语句发挥作用,我们一般情况在tablename后面带上与value或者select对应的列名。4.update更新数据update tablename set name='songjiang' where id=1;//更新id=1这一行的name字段值update tablename set name='songjiang',address='liangshan' where id=1;//更新id=1这一行的多列数据update tablename set address ='liangshan' where id<5;/更新多行数据update更新数据的时候一定要注意后面的where子句要带着,除非我们是要更新整个表的数据5.delete删除数据delete tablename from where id=1;//删除id=1这一行的数据delete tablename from ;//删除表中所有数据truncate table tablename;//删除表中所有数据 和上一条语句一个效果但是比delete 速度快6.alter更新表alter table tablename add mytable char(20);7.drop删除表drop删除表drop table tablename;//删除tablename表8.rename重命名表rename table tablenameold to tablenamenew;//把表tablenameold重新命名为tablenamenewrename table tablenameold1 to tablenamenew1, tablenameold2 to tablenamenew2;//重命名一些表9.view视图什么是视图?视图是由查询结果形成的一张虚拟表什么时候用到视图?如果某个查询结果用的非常频繁,那就用到了视图create view viewname as select语句 创建视图的语句使用视图有什么好处呢?(1)简化查询语句 比如:有一张商品表,我们经常要查每个栏目下商品的平均价格 select cat_id,avg(shop_price) from goods gropy by cat_id; 这时候我们就可以创建一张视图: create view avgPrice as select cat_id,avg(shop_price) from goods gropy by cat_id; 创建完,以后我们要查每个栏目的平均价格时,只要这么写 select * from avgPrice;就可以了。(2)进行权限控制 把表的权限封闭,但是开放相应的视图权限,视图里只开放部分数据列 比如我们的goods商品表,我们不想让别人看到我们的销售价格,这时候我们就可以把查看商品表的权限封闭,创建 一张视图 create view showGoods as select goods_id,goods_name from goods; 不出现销售价格列就可以了。10.存储过程什么是存储过程?存储过程就是一系列sql语句的集合,为什么使用存储过程?简化复杂的操作,提升性能,进行权限限制11.连接
(1)内部连接表别名
(2)自连接
select p1.prod_id,p1.prod_name from products as p1,products as p2 where p1.vend_id=p2.vend_id and p2.prod_id='DTNTR';
(3)自然连接select c.* o.order_num,o.order_date,oi.prod_id,oi.quantity,OI.item_price from customers as c,orders as o,orderitems as oi where c.cust_id=o.cust_id and oi.order_num=o.order_num and prod_id='FB';
(4)外部连接select customers.cust_id,orders.order_num from customers LEFT OUTER JOIN orders on customers.cust_id=orders.cust_id;select customers.cust_id,orders.order_num from customers RIGHT OUTER JOIN orders on customers.cust_id=orders.cust_id;
12.组合查询多数查询都只包含从一个或多个表中返回数据的单条select语句。mysql也允许执行多个查询(多条select语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并(union)或复合查询(compound query)有两种基本情况需要用到组合查询
(1)在单个查询中从不同的表返回类似结构的数据
(2)在单个表执行多个查询,按单个查询返回数据union all使用union all的话 不会对重复匹配的结果进行自动删除
1x.经验总结
(1) 后面要加table 关键字的操作有 drop  alter 
(2) select delete insert update replace 等(3)表别名和列别名不一样,表别名只在查询中使用不返回客户端,






                
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值