常用mysql语句

 

 

1.mysql -h host -u name -p‘密码’;链接mysql。

2.SELECT VERSION(), CURRENT_DATE();显示版本和日期 。

3.SELECT VERSION(); SELECT NOW();单行显示版本和时间。

4.SHOW DATABASES;显示所有的库。

5.USE test;选择当前的库。

6.GRANT ALL ON db_test.* TO 'userA@your_client_host'管理员分配权限给用户, 前面是用户名,后面是连接的主机。

7.CREATE DATABASE db; USE db;创建库,选择当前的库。

8. CREATE TABLE pet (                            //创建名字叫pet的一个表

  name VARCHAR(20),                         //字段明为name,字符类型为varchar长度为20

  owner VARCHAR(20),       //字段名字为owner,字符类型为varchar长度为20

  species VARCHAR(20),      //。。。。。

  sex CHAR(1),          // 。。。。

  birth DATE,              //。。。。

  death DATE           //。。。。。

  );

9. drop database [if exists] 库名;删除数据库。

10.drop tables [if exists] 表名; 删除数据表。

11.desc table 表名;显示表结构。

12. alter table 表名 add 字段名  类型;修改表结构:增长一个字段。

13. alter table  表名 drop 字段名;删除一个字段。

14. alter table 表名modify 字段 新属性 ;   修改一个字段的属性。

15. alter table 表名 add primary key(字段名) ; 修改主键: 增加一个主键。

16.  alter table 表名  drop primary key(字段名);删除一个字段的主键。

17. Insert into 表 (字段表列表) values(字段值),(字段值)。。。。。。//插入数据(可以插入多条数据)

查询  

1.Select  * FROM YUANGONG  Where 姓名  like '王%'; 查找姓王的记录:

2.Select * FROM YUANGONG  Where 姓名  like '%王%'; 查找姓名中有王的记录:

3.Select  * FROM YUANGONG  Where 姓名  like '%王';  查找以王结尾的记录;

4.select * from 表名 limit 2,5; 我想显示第三条到第六条记录 ;

5.% 通配零个或多个任意字符  

6._(下划线) 通配任意一个字符  

记录排序

1.利用order by 对记录进行排序 

格式:select 字段名列表 from 表名 [where 条件] order by 排序字段1 [asc ] [desc] [排序字段2……] 

例子:按年龄对yuangong表进行升序排列! 
Select  * from yuangong order by 年龄  asc 或  select  * from yuangong order by 年龄 

 

如:按年龄对yuangong表进行降序排列! 
Select  * from yuangong order by 年龄  desc ;

 

对员工表先按性别升序排列,性别相同的再按年龄从大到小排序 
 Select * from 员工表   order by   性别 asc,年龄 desc

聚集函数

 

最大值:max()       最小值 min()    平均值avg() 
求和:   sum()        汇总: count ()

 

如:求每个部门的基本工资平均值 
 select 部门,avg(基本工资)  as 部门基本工资 from 员工表 group by 部门

 

显示平均基本工资大于3000的部门 
Select  部门,avg(基本工资) from 员工表 group 部门 where avg(基本工资)>3000 
此句错误。SQL规定在分组中使用条件不能用 Where 而是用 having 
 Select  部门,avg(基本工资) from 员工表 group by  部门 having avg(基本工资)>3000
多表查询:
一个数据库中的多个表,存在一定的联系,怎么样正常的显示这么表的信息? 
现在有三个表: 
class
cid caption
1  三年级二班  
2  二年级一班 
3  一年级五班
 student
sid   sname      gender      class_id 
1    张三        男             2 
2      李四           女        1
3    王五       男     2

第一种方法称为:交叉连接,在SQL SERVER中又称为笛卡尔乘积 
但是要注意的默认生成的记录总数是两表记录之积 
select * from student,class;
select * from student,class class.cid=student.class_id;
这才是我们想要的记录 
第二种方法是用join连接: 
内连接 
select * from yg join gs on yg.name=gs.name 
左外连接 
右外连接 
 但没有全外连接
mysql链接相关

mysql是否启动相关

netstat -nltup查看当前所有链接

netstat -nltup|grep mysql查看当前mysql是否成功启动(权限是root)

 sudo netstat -nltup|grep mysql查看当前mysql是否启动
 sudo netstat -nltup|grep mysql启动mysql
 /etc/init.d/mysqld start 启动mysql

 

posted @ 2017-12-26 17:49  史先森  阅读(119)  评论(0)    收藏  举报