本文介绍: insert into 表名字段名1,字段名2,…) values(值1,值2,…),(值1,值2,…),(值1,值2,…);注意:插入数据时,指定字段顺序要与值的顺序是一一对应的,字符串日期数据包含引号中,插入数据大小应该字段规定范围内。1.给指定字段添加数据insert into 表名字段名1,字段名2,…) values(值1,值2,…);insert into 表名 values(值1,值2…),(值1,值2…),(值1,值2…);

<!DOCTYPE html>

<html&gt;

<head&gt;

    <meta charset=”UTF-8″ /&gt;

    <title&gt;SQL语句基础</title>

</head>

<body>

<!– 下载

    在官网下载免费社区版,账号密码一般设置为123456

    –>

    <!– 数据库相关概念

    数据库存储数据仓库数据是有组织的进行存储,简称DB

    数据库管理系统:操纵和管理数据库的大型软件,简称DBMS

    SQL:操作关系数据库编程语言定义一套操作关系数据库统一标准,简称SQL

    –>

    <!– mysql启动于暂停

    注意:mysql开机默认启动

    步骤

    1.以管理员命令运行cmd

    2.输入

    停止mysqlnet stop mysql80

    启动mysql:net start mysql80

    80指的是注册windows系统服务服务名称

    –>

    <!– mysql客户端连接

    方法一:Mysql提供的客户命令行工具,在开始菜单里找

    方法二:系统自带命令行工具执行指令mysql [-h 127.0.0.1] [-P 3306] -u rootp

    但方法用方法二时,需要配置PATH环境变量,新增C:Program FilesMySQLMySQL Server 8.0bin

    –>

    <!– 数据模型

    客户端 ————> DBMS ————> 数据库 ————> 表

    –>

    <!– 关系型数据库(RDBMS)

        概念:建立在关系模型基础上,由多张相互连接二维表组成的数据库

        特点:

        1.使用存储数据格式统一,便于维护

        2.使用SQL语言操作标准统一使用方便

     –>

    <!– SQL语句通用语法

        1.SQL语句可以单行多行书写,以分号结尾

        2.SQL语句可以使用空格/缩进来增强语句的可读性

        3.MySQL数据库的SQL语句不区分大小写关键字建议使用大写

        4.注释

        单行注释:– 注释内容或#注释内容(MySQL特有)

        多行注释:/*注释内容*/

    –>

    <!– SQL分类

    DDL:Data Definition Language :数据定义语言用来定义数据对象数据库,表,字段

    DML:Date Manipulation Language :数据操作语言,用来对数据库表中的数据进行增删

    DQL:Data Query Language :数据查询语言,用来查询数据库中表的记录

   

    DCL:Data Control Language :数据控制语言,用来创建数据库用户,控制数据库的访问权限

    –>

    <!– DDL-数据库操作

        查询

        1.查询所有数据库:SHOW DATABASES;

        2.查询当前数据库:SELLECT DATABASE();

        创建:CREATE DATABASE [IF NOT EXISTS] 数据库名 [DFFAULT CHARSET] 字符集 [COLLATE 排序规则];

        IF NOT EXISTS 如果存在则不创建,不存在才创建

        []是可选的

        删除:DROP DATABASE [IF EXISTS]数据库名;

        使用:USE 数据库名;

        不区分大小

     –>

     <!– DDL-表操作

        查询

        查询当前数据库所有表:SHOW TABLES;

        查询表结构:DESC 表名;

        SHOW CREATE TABLE 表名;

        创建

        create table 表名(

            字段1 字段1类型[comment 字段1注释],

            字段2 字段2类型[comment 字段2注释]

        )[COMMENT 表注释];

        []为可选参数最后一个字段后面没有逗号

    –>

    <!– 数据类型

    1.数值类型

    tinyint:小整数

    smallint:大整数

    mediumint:大整数值

    bigint极大整数值

    float:单精度浮点数

    double:双精度浮点数

    decimal小数值(精度确定点数)

    2.字符串类型

    char:定长字符

    varchar:变长字符

    tinyblob:不超过255个字符二进制数据

    tinytext:短文本字符

    blob二进制形式的长文本数据

    text:长文本数据

    mediumblob二进制形式的中等长度文本数据

    mediumtext中等长度文本数据

    longblob:二进制形式的极大文本数据

    longtext极大文本数据

    3.日期类型

    date日期值,格式:YYYY-MM-DD

    time时间值或持续时间格式:HH:MM:SS

    year年份值,格式:YYYY

    datetime:混合日期时间值,格式:YYYY-MM-DD HH:MM:SS

    timestamp:混合日期时间值,时间戳,格式:YYYY-MM-DD HH:MM:SS

    –>

    <!– 案例 创建一个员工

    要求:

    1.编号数字

    2.员工工号(字符类型长度不超过10位)

    3.员工姓名(字符串类型长度不超过10位)

    4.性别(男/女,存储一个汉字

    5.年龄:(正常人年龄,不可以存储负数)

    6.身份证号:(二代身份证号均为18位,身份证可能有X字符)

    7.入职时间取值年月日

    create table yg(

        id int comment’编号’,

        worknum varchar(10) comment’工号’,

        name varchar(10) comment’姓名’,

        gender char(1) comment’性别’,

        age tinyint unsigned comment’年龄‘,

        unsugned表示不能负数

        idcard char(18) comment’身份证‘,

        entertime date comment ‘入职时间

        )comment’员工表’;

    –>

    <!– DDL-表操作

    添加字段:altertable 表名 add 字段名 类型长度)[comment注释] [约束];

    修改数据类型:altertable 表名 modify字段名数据类型(长度);

    修改字段名和字段类型:altertable 表名 change字段名字段名 类型(长度)[comment注释][约束];

   

    删除字段名:alter table 表名 drop字段名;

    修改表名:altertable 表名 rename to新表名;

    删除表:drop table [if exists]表名;

    删除指定表,并重新创建该表:truncate table表名;

    –>

    <!– MYSQL的图形化操作

    建议下载 navicatdatagrip

    步骤:1.连接数据库mysql输入用户名密码

    –>

    <!– DML-对表中数据进行增删

    添加数据

    1.给指定字段添加数据:insert into 表名(字段名1,字段名2,…) values(值1,值2,…);

    2.给全部字段添加数据:insert into 表名 values(值1,值2…);

    3.批量添加数据:

    insert into 表名(字段名1,字段名2,…) values(值1,值2,…),(值1,值2,…),(值1,值2,…);

    insert into 表名 values(值1,值2…),(值1,值2…),(值1,值2…);

    注意:插入数据时,指定的字段顺序要与值的顺序是一一对应的,字符串和日期型数据应包含引号中,插入数据的大小应该在字段规定范围

    修改数据

    update 表名 set 字段名1=值1,字段名2=值2,….[where 条件]

    注意:修改语句的条件可以由,也可以没有,如果没有条件,则会修改整张表的所有数据

    删除数据

    delete from 表名 [where 条件]

    注意:delete语句条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据

    delete语句不能删除某一字段的值(可以使用update

    –>

    <!– DQL-数据库查询语言,用来查询数据库中表的记录

    查询关键字select

    语法:

    select

        字段列表

    from

        表名列表

    where

        条件列表

    group by

        分组字段列表

    having

        分组后条件列表

    order by

        排序字段列表

    limit

        分页参数

     –>

     <!– 基本查询

    1.查询多个字段

    select 字段1,字段2….from 表名;

    select*from 表名;(查询所有字段)

    2.设置别名

    select 字段1[AS 别名1],字段2[as别名2]…from 表名;(AS可以省略

    3.去除重复记录

    select distinct 字段列表 from 表名;

    –>

    <!– 条件查询

    语法:select 字段列表 from 表名 where 条件列表

    例子

    1.查询年龄小于20的员工信息

    select * from yg where age < 20;

    2.查询没有身份证号的员工信息

    select * from yg where idcard is null;

    3.查询有身份证号的员工信息

    select * from yg where idcard is  not null;

    4.查询年龄在15到20之间

    select * from yg where age > = 15 and age <= 20

    select* from yg where age between 15 and 20

   

    5.查询姓名为两个字的员工信息like占位符:模糊查询_匹配个字符,%匹配任意字符)

    select * from yg where name like__

    6.查询身份证最后一位是x的员工信息

    select * from yg where idcard like ‘%X’

    –>

    <!– 聚合函数

    将一列数据作为应该整体,进行纵向计算

    常见的聚合函数

    count:统计数

    max最大值

    min最小值

    avg平均值

    sum:求和

    注意:null值不参与聚合函数运算

    语法:select 聚合函数(字段列表)from 表名;

    –>

    <!– 分组查询(group by)

    语法:select 字段列表 from 表名 [where 条件] group by 分组字段名[having 分组过滤条件];

    where与having区别

    执行时机不同

    where是分组之前进行过滤,不满足where条件,不参与分组

    having分组之后对结果进行过滤

    判断条件不同

    where不能对聚合函数进行判断,而having可以

    例子

    1.根据性别分组,统计男和女员工数量

    select gender,count(*)from yg group by gender

    2.查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址

    select workadress count(*) from yg where age < 45 group by workadress having count(*) >= 3;

    注意:

    1.执行顺序:where > 聚合函数 > having

    2.分组之后,查询的字段一般位聚合函数和分组字段,查询其他字段无任何意义

    –>

    <!– 排序查询

    语法:select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;

    排序方式

    ASC:升序默认值

    desc:降序

    注意:如果多个字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

     例子

     1.根据年龄进行升序排序

     select * from yg order by age asc;

     asc默认的不写也行

     

     2.根据年龄升序排序,年龄相同,再按照入职时间降序排序

     select * from yg order by age asc,enterdata desc;

    –>

    <!–分页查询

    语法:select 字段列表 from 表名 limit 起始索引,查询记录数;

    注意:

    1.起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。

    2.分页查询是数据库的方言,不同的数据库有不同实现,MySQL是limit

    3.如果查询的是第一页,起始索引可以省略,直接写为limit10

    例子

    1.查询第一页的员工数据,每页展示10条记录

    select * from yg limit 0,10;

   

    2.查询第三页员工数据,每页展示10条记录

    select * from yg limit 20,10;

    –>

    <!– DQL语句的执行顺序

    from where group by having select,order by limit

    –>

<!– DCL,用来管理数据库用户,控制数据库的访问权限

    管理用户

    1.查询用户

    USE mysql;

    select * from user;

    2.创建用户

    create user用户名‘@’主机名identified by ‘密码‘;

    3.修改用户密码

    alter user用户名‘@’主机名identified with mysql_native_password by ‘新密码‘;

    4.删除用户

    drop user用户名‘@’主机名’;

    例子

    1.创建用户 text ,只能在当前主机localhost访问,密码123456

    create user ‘text‘ @ ‘localhost‘ identified by ‘123456’

    2.创建用户 text1 ,可以在任意主机访问该数据库,密码123456

    create user ‘text1′ @ ‘%’ identified by ‘123456’;

    –>

    <!–权限控制

    all,allprivileges所有权

    select:查询数据

    insert:插入数据

    update:修改数据

    delete:删除数据

    alter:修改表

    drop:删除数据表/库/视图

    create:创建数据库/表

    1.查询权限

    show grants for ‘用户名‘@’主机名’;

    2.授予权限

    grant 权限列表 on 数据库名.表名 to ‘用户名‘@’主机名’;

    3.撤销权限

    revoke 权限列表 on 数据库名.表名 from ‘用户名‘@’主机名’;

    注意:多个权限之间适应逗号进行分隔授权时,数据库名和表名可以使用*进行通配,代表所有

    –>

</body>

</html>

原文地址:https://blog.csdn.net/m0_59745705/article/details/134700580

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_34230.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注