My SQL

数据库是一个软件,包含服务端和客户端

一般安装数据库指的是安装服务端(基本上所有数据库都会自带命令行客户端)

学习客户端:MySQL Command Line

Windows CMD

启动服务:net start myaql

停止服务:net stop mysql

连接:mysql -uroot用户名 -p密码 -h主机地址(登录本机的就不用这个)

退出:quit、exit、\q

数据概念:

发展:人工记录(纸质)

软件      (office)

数据库    (MySQL    Oracle    SQLServer)

数据库分类:

关系型数据库:

MySQL (中小型,开源,Oracle)

Oracle(大型,收费)

SQLServer(中大型,收费,微软)

SQLLinte(安卓包含)

说明:一个数据库内装若干个表格,以表存储数据,

关系指的是行和列的关系和表与表之间关系。

非关系型数据库:

NOSQL    ManggoDB

如何查看当前数据库服务器下有哪些数据库:

show databases;

创建数据库

create database 这里写自己取的名称;

如何删除数据库:

drop database 创建的数据库的名称;

如何创建数据表:

先找到需要创建数据表的数据库:

use 数据库名称;

              create table  表名(

                        编号 int,整数

                        名称 varchar(范围),字符串

                        价格 double,小数

                          日期  date,日期

                    );

如何查看数据库中创建的数据表:

show tables;

删除数据表:

drop table 数据表名称;


查看数据表的结构:

desc 数据表名称;


如何添加数据到数据表中(1):

insert into 数据表的名称  values(列1的值,列2的值,列3的值,列4的值,............);

在需要添加数据的列中插入某列的数据(2):

inert into 数据表名称(列名,列名,列名,列名.......) values(值,值,值,值);


查看数据表中的数据:

select * from 数据表的名称;


数据类型:

日期和时间类型:

字符串类型:

数据表的约束:

一、主键约束:区分表中的数据行,唯一的,不能为空。

                          create table 数据表名称(

                                          id int primary key,

                                          name varchar(10)

                                      );

二、非空约束:要求这一列插入数据时必须给值。

                                  create table 数据表名称(

                                              id int primary key,

                                                name varchar(20) not null

                                            );


三、默认值:在某一列中设置默认值

                                  create table 数据表名称(

                                                    id int primary key,

                                                    name varchar(20) not null,

                                                    age int default '默认的字符'

                                                  );


四、唯一约束:不允许重复的

                                      create table 数据表名称(

                                                  id int primary key,

                                                  name varchar(20) not null,

                                                  age int default '默认的字符',

                                                  tel varchar(15) unique

                                      );


五、外键约束

在主键列表中:constrain fk_主外键表名称_副外键表名称_外键列名称 foreign key(主外键列名称) references 副外键表名称(外键列名称)

SQL语言(Struct query language)

数据库方言:各个数据库特有的一种语法(不是特别多)。

标准SQL:各个数据库通用的语法。

分类:DDL(数据定义语言) create alter drop

           DML(操作语言) insert delete update

           DQL(数据查询语言) select

           DCL(数据控制语言)事务控制语言

alter 修改表结构的语句:

1、重命名表

      alter table 原数据表名 rename to 新数据表名;

2、添加列

        alter table 数据表名 add 列名  类型 约束;

3、删除列

       alter table 数据表名 drop 列名;

4、修改列

       alter table 数据表名 change 旧列名 新列明 类型 约束;

5、添加约束

主键约束:

alter table 主键数据表名 add constraint 主键名 primary key(主键列);

非空约束:

alter table 数据表名 change 列名 列名 数据类型 not null;

alter table 数据表名 modify 列名 数据类型 not null;

唯一约束:

alter table 数据表名 modify 列名 数据类型 unique;

默认值:

alter table 数据表名 modify 列名 数据类型 ;

外键约束:

alter table 主键数据表名 add constraint fk_主键数据表名_副键数据表名_主键列名 foreign key(主外键列名称) references 副外键表名称(外键列名称);

6、删除约束

删除主键约束:

alter table  主键数据表名 drop primary key;

这样删除不彻底,还需要删除非空约束:

alter table 数据表名 modify 列名 数据类型 null;

删除外键约束:

alter table 主键数据表名 drop foreign key fk_主键数据表名_副键数据表名_主键列名;

删除唯一约束:

alter table 主键数据表名 drop index 列名;

插入语句:

删除数据:

delete from 数据表名 where 数据表列名 过滤条件

过滤条件:

运算符过滤:=、<、>、<=、>=、!=或者 <>

关键字过滤:is null(为空)  in('关键字','关键字',.......)

between 数值  and 数值

模糊筛选: like '字符'

_一个任意字符

%任意多个任意字符

逻辑运算符:

and 两个条件同时满足,只能在一个单元(一行)内使用。

or 满足任意一个条件

注意过滤条件的使用:当多个条件时,需把同一个条件用()隔开

修改数据:

update 数据表名 set 列名='新值',列名='新值',.........where 列名 过滤条件;

注:更改多个列时用,隔开

查询数据:

select 要查询的列 from 数据表名;

给列取临时别名:

select 列名 as '别名';

select 列名 '列名';

注意:在开发中尽量避免使用*,因为*效率低!

排序:

select 列名 from 表名 order by 列名 asc(升序);

select 列名 from 表名 order by 列名 desc(降序);

结果限定:

select 列名 from 表名 limit 跳过的长度 ,要取出的长度;(如果没有跳过的长度,那就代表要跳过的长度为零)

列运算:

把查询结果进行数学运算,不会影响表中的数据,只是这次查询中生效

用+ - * / %

当有null时,和任何数据运算都为null

ifnull(列名,0),取代原列名

concat('字符',原列名),原列名前加字符

分组,方便统计

统计总数:count(列名,*)

注意:null 不计入统计

去除重复 distinct

统计最大值:max(列)

统计最小值:min(列)

统计平均值:avg(列)

统计和:sum(列)

日期函数:

获取年:year(列名)

获取月:month(列名)

获取号:day(列名)

获取本地日期时间:now()

分组:

select 列名 from 表名 group by 分组列

注:如果是用列名进行筛选在group by前用where进行条件筛选,如果是用统计函数进行筛选在group by后用having进行条件筛选!

SQL语言执行顺序:

from→where→group→select→having→order by→limit

复合查询:

子查询(嵌套查询)

select 列名 from 表名 where  列名 运算符(select 列名 from 表名)

处理多行子查询:子查询返回了多个值。

any:任意

>any:大于最小的那一个

<any:小于最大的那一个

all:全部

>all:大于最大的那一个

<all:小于最小的那一个

in:集合

连接查询:

等值连接

select 列名 from 表名 ,表名......where 连接条件;

多表连接查询时尽量使用别名,以解决列名冲突;没有表名要使用表名.列名如图:

外链接:

左外连接:左外全部显示,右边无法匹配的显示null

select 列名 from 表名 left join 表名 on 连接条件

右外连接:右外全部显示,左边无法匹配的显示null

select 列名 from 表名 right join 表名 on 连接条件

全外连接:

注:MySQL中不支持使用 ,只能用union,同时union all 合并结果不会去掉重复,使用union合并结果会去掉重复

select 列名 from 表名 left join 表名 on 连接条件union select 列名 from 表名right join表名 on 连接条件


数据库软件:navicat.11.2.16.premium_cs_x64.zip


在数据库软件中查询多个外连接表:

虚表:不是数据库物理存在的表,是把一个查询结果视为一张表使用,使用虚表要使用别名。

视图表:

创建视图表:

create view 自定义表名 as 后面跟上自己所需要显示的表列和条件

使用视图表:select * from 视图表名

删除视图表:drop view 视图表名

注意:可以修改视图表中的数据,但是不能删除视图表中的数据(使用连接查询的视图包含 join)不能添加视图表中的数据,原数据表里的数据发生变化会在视图表中变化体现出来。

索引:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • SQL SELECT 语句 一、查询SQL SELECT 语法 (1)SELECT 列名称 FROM 表名称 (2...
    有钱且幸福阅读 5,438评论 0 33
  • 什么是SQL数据库: SQL是Structured Query Language(结构化查询语言)的缩写。SQL是...
    西贝巴巴阅读 1,803评论 0 10
  • 系统用户: 1.sys system(sys权限最高) 2.sysman(操作企业管理器) 密码是安装的时候输入的...
    3hours阅读 1,558评论 0 0
  • 学习web安全足足有一个半月有余,之前学的是前端,也会一点python。。好吧差不多忘了。常规工具算是熟悉基本...
    一叶红尘哦哟阅读 3,370评论 4 92
  • 关键词:闭包(closure) 概念:闭包就是能够读取其他函数内部变量的函数,对于js,闭包就是将函数内部和函数外...
    ferrint阅读 653评论 0 0