mysql数据库语法

1、创建数据库:

create database myschool;

2、删除数据库:

drop database myschool;

3、创建表:

create  table  [if  not  exists]   表名(

字段1       数据类型    [字段属性|约束]   [ 索引 ]  [ 注释],

……

) [ 表类型 ] [表字符集] [注释];

create  table `student`(

`studentNo`     int(4)      not null      comment ‘学号‘   primary   key,   #非空,主键

`name` char(10),

……

) comment="学生表";

4、添加字段

alter  table  demo02   add `password`   varchar(32)   not   null;

5、修改字段

alter  table 表名 change  原字段名  新字段名  数据类型  [ 属性 ];

alter table  demo02  change `name` `username` char(10) not null;

6、设置默认值约束

alter  table  grade  alter  column   gtype   set  default  ‘一年级‘;

7、删除字段

alter  table  表名  drop  字段名

alter  table  demo02  drop  `password`;

8、添加主键约束

alter  table  表名  add  constraint  主键名  primary  key  表名(主键字段);

alter  table  `grade`  add   constraint  `pk_grade`  primary  key  `grade`(`gradeId`);

9、添加外键约束

alter  table  表名  add  constraint   外键名   foreign   key  (外键字段)  references  关联表名(关联字段);

alter  table  `student`  add  constraint  fk_student_grade  foreign  key(`gradeId`)  references  `grade` (`gradeId`);

10、添加检查约束

alter  table  test  add constraint  CK_test_tprice  check( tprice > = 100);

11、插入数据

insert  into  `subject`(`subjectName`,`classHour`,`gradeId`)

values(‘logic java‘,220,1),(‘HTML‘,160,1);

12、将查询结果插入到新表

create   table  新表(select  字段1,字段2,……FROM  原表);

create  table `phoneList`(select `studentName,`phone` from `student`);

13、更新数据

update  表名  set  列名  =  更新值 [ where  更新条件];

update student  set  sex = ‘女‘   where  id = 1;

14、删除数据

delete  [ from ]  表名 [ where <删除条件>];

delete  from  student  where   id  =  1;

15、使用select语句进行查询

select  <列名|表达式|函数|常量>

from <表名>

[where  <查询条件表达式>]

[order  by  <排序的列名>    [ASC或DESC] ];

select  studentNo  AS  学生编号,studentName  AS 学生姓名, address AS  学生地址

from   student

where  id = 1;

或者:

select firstName+‘.‘ + lastName AS 姓名  FROM  employee;

16、 查询空值

select   studentName   from  student  where  email  is  null ;

17、在查询中使用常量列

select  studentName  AS 姓名,address AS  地址, ‘北京‘ AS 学校名称 from  student;

18、 聚合函数

AVG(  )

COUNT(  )

MAX(  )

MIN(  )

SUM(  )

select  sum(studentResult)  from  result;

select  AVG(studentResult)  from  result;

19、字符串函数

CONCAT(str1,str2,……,strn)     select    CONCAT(‘MY‘,‘S‘,‘QL‘);     返回:MYSQL

INSERT(str,pos,len,newstr)       select    INSERT(‘这是Oracle数据库‘,3,6,‘MySQL‘);     返回:这是MySQL数据库

LOWER(str)    select  lower(‘MYSQL‘);     返回:mysql

upper(str)

substring(str,num,len)   select  substring(‘JavaMySQLOracle‘,5,5);         返回:MySQL

20、时间日期函数

select  datediff(now(),‘2008-8-8‘);      返回3327,返回日期参数date1和date2之间相隔的天数

select   adddate(now(),5);

21、数学函数:

CEIL(x)      返回大于或等于数值x的最小整数   select ceil(2.3)   返回:  3

FLOOR(x)    返回小于或等于数值x的最大整数     select  floor(2.3)   返回:2

22、order  by  字句

ASC:升序   DESC:降序

例:要在学生成绩排序的基础上,再按照课程ID进行排序的语句如下:

select   studentId   AS  学生编号,studentResult  AS  成绩,courseID  AS  课程ID,

from   result

whre  studentResult>60

order  by  studentResult,courseID;

23、group   by  分组

select  <列名|表达式|函数|常量>

from <表名或视图>

[where  <查询条件表达式>]

[group  by <分组的字段名>]

[order  by  <排序的列名>    [ASC或DESC] ]

[LIMIT [位置偏移量,] 行数];

多列分组查询

select  count(*)  AS  人数,grade  AS  年级, sex  AS 性别  from  student

group  by  grade ,sex

order by grade;

24、简单子查询

select  `studentNo`,`studentName`,`sex`,`bornDate`,`address`  from  `student`

where  `bornDate` >

(select  `bornDate`  from  `student`  where   `studentName` = ‘李斯文‘);

25、IN和NOT IN 子查询

查询Logic  Java课程至少一次考试刚好等于60分的名单:

select  `studentName`  from  `student`

where  `studentNo`  IN(

select  `studentNo`  from  `result`

where   `subjectNo` =(

select    `subjectNo`  from  `subject`

where  `subjectName` = `Logic Java`

) and  `studentResult` = 60

);

26、EXISTS子查询

EXISTS关键字后面的参数是一个任意的子查询,如果该子查询有返回行,则EXISTS子查询的结果为true,此时再执行外层查询语句。如果子查询没有返回行,则EXISTS子查询的结果为false,此时外层语句不再执行查询。

检查Java课程最近一次考试。如果有成绩达到80分以上者,则显示分数排在前5名学员的学号和分数。

select  `studentNo`    AS  学号,`studentResult`  成绩  from   `result`

where  exists (

#查询Logic Java最后一次考试成绩大于80的记录

select   *   from  `result`   where  `subjectNo` = (

select  `subjectNo`   from   `subject`   where  `subjectName` =  ‘Logic  Java‘

) AND    `examDate` = (

select  MAX(`examDate`)     FROM  `result`   where  `subjectNo` = (

select   `subjectNo`  from  `subject`

where  `subjectName` = ‘Logic  Java‘

)

) AND  `studentResult` > 80

)   AND `subjectNo` =  ( select  `subjectNo`  from  `subject`  where `subjectName` = ‘Logic Java‘)

ORDER  BY `studentResult`  DESC  LIMIT  5;

27、使用HAVING字句对分组后的数据进行筛选

select   count(*)   AS  人数, gradeId   AS  年级   from   student

group   by   gradeId

having   count(*) > 2;

28、内连接查询

select  student.studentName,result.subjectNo,result.studentResult

from  student,result

where student.studentNo = result.studentNo;

或者:

select  s.studentName,r.subjectNo,r.studentResult

from  student AS s

INNER  JOIN result AS r  on(s.student.No = r.studentNo);

29、 左外连接查询

select   s.studentName,r.subjectNo,r.studentResult

from  student  AS  s

left  outer  join result as r  on s.studentNo = r.studentNo;

时间: 2024-10-09 02:39:42

mysql数据库语法的相关文章

学习python3 MySQL数据库语法遇到的问题:&quot;Can&#39;t connect to MySQL server on &#39;localhost&#39;

运行学习教程里面的mysql数据库按照里面要的步骤安装pyMySQL,学习里面的内容,会出现一些疑问,我也遇到了,发现这是一个认识上错误,实例如下: 根据基础教程运行下面代码,会报错: #!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","test","test","DB" ) # 使用 cursor() 方法创建一个游标对象

1、mysql数据库语法

4.插入表数据 5.修改表数据 6.删除数据库和数据表 7.查询语句 占位符:一个下划线代表一个字符 2)查询联系电话第三位为8或9并以888结尾的作者信息 SELECT * FROM `authors` WHERE telephone LIKE '__8_____888' OR telephone LIKE '__9_____888'; 别名:给字段或者表取一个新的名字 子查询:将一个查询结果当做一个条件来用,此种情况叫做子条件查询 SELECT * FROM yingxiong WHERE

DBA:多方式选择MySQL数据库

一.命令行方式 MySQL [(none)]> show databases; #未选择数据库前,显示(none)表示在数据库跟路径下 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | viewtest | +--------------------+ 5 rows in set (0.02 sec

mysql数据库操作语法大全

1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码. 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql> 2.连接到远程主机上的MYSQL.假设远程主机的IP为:1

MySQL创建和修改数据库语法

1.创建数据库语法: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name    [create_specification [, create_specification] ...] 注:CREATE DATABASE用于创建数据库,并进行命名.如果要使用CREATE DATABASE,您需要获得数据库CREATE权限.如果存在数据库,并且您没有指定IF NOT EXISTS,则会出现错误. create_specification:    [D

数据库oracle与mysql在语法上的区别

转自http://blog.csdn.net/huanghm88/article/details/8009048 数据库oracle与mysql在语法上的区别不是很多,但是也有一些.下面是部分参考: 1,oracle没有offet,limit,在mysql中我们用它们来控制显示的行数,最多的是分页了.oracle要分页的话,要换成rownum. 2,oracle建表时,没有auto_increment,所有要想让表的一个字段自增,要自己添加序列,插入时,把序列的值,插入进去. 3,oracle有

mysql数据库常用语法

1)登录mysql数据库. mysql –uroot –poldboy123 mysql 2) 查看当前登录的用户. selectuser(); 3) 创建数据库oldboy,并查看已建库完整语句. create database oldboy; show databases; show create database oldboy; 4)创建用户oldboy,使之可以管理数据库oldboy. create user [email protected]'localhost' identified

mysql数据库 BETWEEN 语法的用法和边界值解析

between用法: 用于where表达式中,选取两个值之间的数据,如: 1 SELECT id FROM user WHERE id BETWEEN value1 AND value2; 当between前面加上not运算符时,表示取value1和value2范围外的值. 1 SELECT id FROM user WHERE id NOT BETWEEN 2 AND 5; between边界解析: 通过例子可以看出查出来的结果是    2=< id <=5:可见在mysql数据库中,bet

mysql数据库表的检测和修复

Mysql数据库修复方法有下面3种: 1. mysql原生SQL命令: repair 即执行REPAIR TABLE SQL语句 语法:REPAIR TABLE tablename[,tablename1...] [options] 示例: mysql> use database xxx; mysql> repair table *; 2.使用MySQL自带的客户端工具: mysqlcheck (无需停止MySql服务)具体信息可见: http://dev.mysql.com/doc/refm