参考书籍《 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. python增删改查(四)

    ###增删改查 names = ["zhangding","wangxu","wudong","cheng"] #增 n ...

  2. 和redis谈一场恋爱(第一天邂逅)

    前几天玩了下Memcache,发现挺好用.知道redis是Memcache的妹妹.我本着大公无私和博大的胸怀,看着redis孤零零的躺在角落里,委实觉得可怜.心里总有个声音在说,你既然已经爱上了Mem ...

  3. [USACO2009 NOV GOLD]奶牛的图片

    校内题,不给传送门了. 以前做完NOIp2013的火柴排队那道题后,当时很担心NOIp会出那种题,因为贪心的规则能不能看出来真的要看运气.但是这类题做多了后发现其实那道题的规则其实是很多题都已经用到了 ...

  4. java编程思想-java中的并发(四)

    五. 新类库中的构件 Java SE5的java.util.concurrent引入了大量设计用来解决并发问题的新类.学习使用它们将有助于编写出更加简单而强壮的并发程序. 1. CountDownLa ...

  5. 任务二:1、选择器 2、连接集中状态的顺序 3、浮动的用发和原理 4、盒模型在IE和Google等不同浏览器的区别与联系

    1.选择器类型 标签选择器,类选择器,ID选择器,组合选择器,伪类和伪元素,属性选择器,子选择器,同胞选择器, :not()选择器 1.同胞选择器 相邻同胞标签: h2 + p{ color:red; ...

  6. CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...

  7. JavaWeb学习笔记——JSTL核心标签库

  8. EasyDarwin

     1.EasyDarwin多媒体点播实现 新版本EasyDarwin都加入了中心管理服务EasyCMS, 对于点播系统,EasyCMS不是必须的. MP4点播,需要将mp4文件hint之后才行,MP4 ...

  9. 解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题

    PS背景:我在公司做sdk 的pc端开发,所以经常会在win下编译通过之后跑到linux下再运行一次已确保能支持多平台. 今儿在win下跑完一程序,然后放到linux下跑的时候,我用指令: [plai ...

  10. Main函数 & Autoreleasepool

    如同任何基于C的应用程序,程序启动的主入口点为iOS应用程序的main函数.在iOS应用程序,main函数的作用是很少的.它的主要工作是控制UIKit framework.因此,你在Xcode中创建任 ...