参考书籍《 MySQL数据库基础与实例教程》 --孔祥盛

SQL(structured query language)结构化查询语言,应用最为广泛的关系型数据库语言。

MYSQL属于关系型数据库管理系统中的一种,数据库用户必须使用关系型数据库管理系统,才能调用操作系统的进程管理、内存管理、设备管理以及文件管理等服务,为数据库用户提供管理、控制各种数据库。

MYSQL用法总结

1、创建库choose、显示库、删除库

Create database choose;

Show create database choose;

drop database choose;

2、创建表my_table、显示表、删除表

Create database choose;

Use choose;

Create table my_table(

Today datetime,

Name char(20)

);

Show table my_table;

Drop table my_table;

3、创建复合类型变量

Create table person(

Sex enum(‘男’,’女’), #enum创建复合型变量

Interest set(‘music’,’swim’,’shopping’,’traveling’)

); #set创建复合型变量

Insert into person values(‘女’,’music,traveling’); #set创建的复合型变量可以多选

4、创建表含有约束及外键的表

Create table course(

Course_no int auto_increment primary key, #设置自增型字段,主键约束

Course_name char(10) not null, #非空约束

Up_limit int default 60, #默认值约束

Description text not null,

Status char(6) default ‘未审核’,

Teacher_no char(10) not null unique, #非空约束,唯一性约束

Constraint course_teacher_fk foreign key(teacher_no) references teacher(teacher_no) #外键约束,要给外键取个名字,同时说明外键是哪个,连接的是哪个表

)engine=innoDB default charset=gbk; #指定字符集及引擎

5、复制表

Create table person_1 like person; #只复制表结构

Create table person_1 select * from person; #复制表结构及数据

6、添加、删除、更改字段

Alter table person drop sex;#删除字段

Alter table person add sex enum(‘男’,’女’) first;#添加字段,first表示该变量放到前面

Alter table person change sex gender text; #更改字段,一定要加上新字段的变量类型

7、添加、删除约束

Alter table person add constraint email_uinque unique(email); #添加约束,记得还要重新给新约束起个名字

Alter table person drop primary;

Alter table person drop foreign key choose_student_fk; #删除外键

8、删除表

一般的表删除直接drop table [表名];但是如果是删除父表,必须将其子表的外键依赖删除才可以删除附表,alter table [表名] drop foreign key [外键名];或者使用禁用外键的语句set foreign_key_check=0,之后再启用set foreign_key_check=1。

9、插入记录、更改记录、删除记录

Use choose;

Insert into course values(null,’java语言程序设计',default,'暂无','已审核','001');

insert into course values(null,'MYsql数据库',150,'暂无','已审核','002'); #第一个为null是因为上文第4条创建course表中,第一个字段是自增型变量,取null后会主动填充。

Insert into course values

(null,’java语言程序设计',default,'暂无','已审核','001'),

(null,'MYsql数据库',150,'暂无','已审核','002'); #批量插入数据方法

Replace into course values(null,’java语言程序设计',60,'暂无','已审核','001'); #更改记录

Update course set course_name='php编程基础' where teacher_no=’001’;

Delete from course where course_name=’java语言程序设计';

Truncate table course;#删除course表中所有记录

10、模糊查询

Select * from new_student where student_name like ‘%\_%’; #其中%代表任意字符,\为转移字符用于提示后面的_为显示内容而不是代表一个字符

Select * from new_student where student_name like ‘_%’; #此时_代表一个字符

Select id, name from new_student where name in (a,b);

正则表达式regexp,模糊查询

select * from course where course_name regexp 'java';#包含

select * from course where course_name regexp '程序设计$';#以程序设计结尾

select * from course where course_name regexp '^j.*程序设计$';#^表示以j开头,.*连接

11、表记录查询

Select * from course;

Select distinct course_name from course;#选择不重复的记录

Select * from course limit 0,3; #3为显示3条记录,0是从第一条开始

12、连接表查询

Select student_no,student_name,student_contact,s.class_no,class_name,

from student as s join classes as c on s.class_no=c.class_no;#内连接,检索有班级的学生的班级信息

Select student_no,student_name,student_contact,s.class_no,class_name,

from student s, classes c

where s.class_no=c.class_no; #上面的等价表达式

select student_no,student_name,student_contact,s.class_no,class_name from student as s left join classes as c on s.class_no=c.class_no;#左连接,检索所有学生的班级信息

select student_no,student_name,student_contact,s.class_no,class_name from student as s right join classes as c on s.class_no=c.class_no;#右连接,检索所有班级的学生信息

select class_name,student_name,course_name,choose.course_no,score

from classes  join student on classes.class_no=student.class_no

join choose on student.student_no=choose.student_no

join course on choose.course_no=course.course_no

where class_name='2012自动化2班';#多表连接,查询2012自动化二班的所有学生所有课程的成绩

select student_no 编号, student_name 姓名, student_contact 联系方式

from student

union all

select teacher_no, teacher_name,teacher_contact

from teacher; #合并结果集,其实是纵向连接

13、函数

Select * from student where substring(student_name,1,1)= '张'or substring(student_name,1,1)='田';# substring函数提取字符

select * from student where substring(student_name,1,1) in ('张','田'); # in函数,在什么里面

select count(student_no) as number from student;#count函数

select sum(score) 总成绩 from choose; #sum函数

select max(score) 最高分, min(score) 最低分 from choose;

select group_concat('java','程序','设计'); #group_concat函数,字符串连接

select * from tb where datediff(dd,sendtime,getdate())=0;#datediff函数,返回两个日期之间天数

14、常用的查询结构

Select [字段名]

From[表名]

Where[条件]

Group by [字段名]

Having[条件]

Order by [字段名]

select student.student_no,student_name,count(course.course_no),max(score), min(score), avg(score)

from student join choose on student.student_no=choose.student_no

join course on choose.course_no=course.course_no

group by student.student_no #group by() 不单独使用,与聚合函数一起使用

having avg(score)>70#having在group by后面,顺序不能错

order by student.student_no;

Select

(case when [条件1] then [字段1]

when [条件2] then [字段2]

else [字段0] end)

as  [列名]

from [表名]

select

(case when 语文>=80 then '优秀'
        when 语文>=60 then '及格'
else '不及格' end) as 语文,
(case when 数学>=80 then '优秀'
        when 数学>=60 then '及格'
else '不及格' end) as 数学,
(case when 英语>=80 then '优秀'
        when 英语>=60 then '及格'
else '不及格' end) as 英语,
from table

子查询,即查询里面嵌套查询

select student_name,score

from student,choose

where score>(

select avg(score)

from student, choose

where student.student_no=choose.student_no and student_name='张三'

);

15、逻辑运算符

select * from course where up_limit !=60;#!为非的意思

16、排序

select * from choose order by  score desc;#desc降序,asc升序

17、将查询结果建立一个新表

Create table bb as select * from table1 where id=1;

MYSQL基础语句的更多相关文章

  1. MySQL 基础语句

    MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...

  2. MySQL基础语句与其在Python中的使用

    一.MySQL基础语句 $ mysql -u root -p (有密码时) $ mysql -u root     (无密码时) QUIT (or \q)  退出 查看当前所有数据库 show dat ...

  3. MySQL基础语句【学习笔记】

    放在这里,以备后查. 1. 数据库, 数据库服务器, 数据库语言 数据库,是持久性数据的集合,供给定企业的应用程序系统使用,并且由一个数据库管理系统来管理: 数据库服务器,又称数据库管理系统,用来管理 ...

  4. 入门MySQL——基础语句篇

    前言:  前面几篇文章,我们介绍了MySQL的基础概念及逻辑架构.相信你现在应该有了自己的一套MySQL环境,接下来我们就可以开始练习MySQL了.本文将从MySQL最基础的语句出发,为你展示出创建及 ...

  5. 2-14-1 MySQL基础语句,查询语句

    一. SQL概述 结构化查询语言(Structured Query Language)简称SQL 1. 它是一种特殊目的的编程语言 2. 它还是一种数据库查询和程序设计语言 (用于存取数据以及查询.更 ...

  6. MySQL基础语句(MySQL内置函数 )

    MySQL 字符串函数 函数 描述 实例 ASCII(s) 返回字符串 s 的第一个字符的 ASCII 码. 返回 CustomerName 字段第一个字母的 ASCII 码: SELECT ASCI ...

  7. MySQL 基础语句的练习2

    CREATE TABLE student ( id INT, NAME ), Chinese FLOAT, English FLOAT, Math FLOAT ); ,,,); ,,,); ,,,); ...

  8. MySQL基础语句(修改)

    ①INSERT INSERT INTO students (class_id, name, gender, score) VALUES (2, '大牛', 'M', 80); 向students表插入 ...

  9. MySQL 基础语句的练习

    -- *** ①.对数据库的操作 *** -- -- 查看所有的数据库 SHOW DATABASES; -- 创建数据库 CREATE DATABASE day1026 DEFAULT CHARACT ...

随机推荐

  1. 【Alpha阶段】第十次Scrum例会

    会议信息 挺过编译ddl,开始Alpha阶段最后的调试 时间:2016.11.08 21:30 时长:25min 地点:大运村1公寓5楼 类型:日常会议 NXT:2016.11.10 21:30 个人 ...

  2. linux快速安装lamp环境

    我折腾过不少的lamp安装方式,lnmp也折腾过.不过因为windows下面apache用的比较多,各种配置也比较熟悉,因此最终还是选择了lamp这个架构. 由于是自己装虚拟机玩,所以各种安全措施都没 ...

  3. JavaWeb---总结(八)HttpServletResponse对象(二)

    一.HttpServletResponse常见应用--生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类, 生成随机图片范例: 1 package gacl ...

  4. angular ui-router 缓存问题

    在个别情况下 $state.go()路径和参数完全相同的时候页面因为缓存问题可以直接跳转,但是不能重新获取数据 通过路由参数可以解决 路由 .state('app.***.***', { url: ' ...

  5. JSContext

    An instance of JSContext represents a JavaScript execution environment. All JavaScript execution tak ...

  6. FIFA halts 2026 bids amid scandal 国际足联在丑闻期间停止2026年足球世界杯申请

    FIFA halts 2026 bids amid scandal 国际足联在丑闻期间停止2026年足球世界杯申请 But official insists 2018 Cup will stay in ...

  7. 【原】React操作表单

    最近的项目中开发中都是用react,其中有用到react去操纵表单.然后自己就在每个表单元素中添加 ref,  然后再像jquery操作dom一样去操纵这个ref, 代码如下: 首先我在每个表单元素那 ...

  8. php 设计模式 例子

    加载类:include("./Ren.class.php");include "./Ren.class.php"; require("./Ren.cl ...

  9. StringBuilder 拼接sql语句比较快

    StringBuilder 拼接sql语句比较快StringBuilder strBuilder = new StringBuilder();strSql += "insert into t ...

  10. 在VS中向命令行添加参数的方法

    在VS中向命令行添加参数的方法 在VS中向命令行添加参数,即向main()函数传递参数的方法: 右键单击要 添加参数的工程-->属性-->配置属性-->调试,在右侧“命令参数”栏输入 ...