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)表别名和列别名不一样,表别名只在查询中使用不返回客户端,

 
 
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值