MySQL基础

 

 

1、SQL:是一种结构化查询语言(structured query language)

2、SQL语法:

    (1)SQL语句可以在单行或多行书写,并以分号结尾

    (2)可以使用空格和缩进来增强语句的 可读性

    (3)MySQL不区分大小写,监视使用大写

2、语句分类

    (1)数据定义语言DDL(data definition language):用来定义数据库对象例如库、表、列

       》创建、删除、修改库和表结构

    (2)数据操作语言DML(data manipulation language):用来定义数据库记录(数据)

      》增、删、改表记录

     (3)数据控制语言DCL(data control language): 用来定义访问权限和安全级别

     (4)数据查询语言DQL(data quary language):用来查询记录(数据)

3、DDL

    (1)数据库

      》查看所有数据库:SHOW DATABASES,注:database是复数s,同时分号结尾

      》切换要操作的数据库:USE dataName

      》创建数据库:CREATE DATABASE (IF NOT EXISTS) mydb1 (CHARSET=utf8)

      》删除数据库:DROP DATABASE (IF EXISTS) mydb1

      》修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8

    (2)数据类型(列类型)

      》int:整型

      》double:浮点型,注:double(5,2)表示最多5位,其中必须有2位小数

      》decimal:浮点型,在表单钱方面使用该类型,防止精度缺失问题

      》char:固定长度字符串类型 char(255),数据长度最长为255,数据长度不足时补足255

      》varchar:可变长度字符串类型:varchar(65535), wangcb

      》text(clob):字符串类型,clob是个方言,标准里面没有,text有细分的类型,使用时注意查看

      》blob:字节类型,表示二进制

      》data:日期类型,格式为yyyy-mm-dd

      》time:时间类型,格式为hh:mm:ss

      》timestamp:时间戳类型 同时具有日期类型和时间类型,

    (3)表

      》创建表:

       CREATE TABLE [IF NOT EXISTS] 表名(

           列名 列类型,

 

           列名 列类型

       ); 注意最后要添加分号

      》查看当前数据库中所有表名称:SHOW TABLES;

      》查看指定表的创建语句:SHOW CREATE TABLE 表名;

      》查看表结果:DESC 表名

      》删除表:DROP TABLE 表名

      》修改表:前缀 ALTER TABLE 表名

      >添加列

       ALTER TABLE 表名 ADD (

           列名 列类型,

           列名 列类型

       )

       >修改列类型

       ALTER TABLE 表名 MODIFY 列名 列类型

       >修改类名

       ALTER TABLE 表名 CHANGE 原列名 新列名 列类型

       >删除列

       ALTER TABLE 表名 DROP 列名

       >修改表名称

       ALTER TABLE 原表名 RENAME TO 新表名

====2020-02-04学习记录====

4、DML

    (1)插入数据

      》INSERT INTO 表名(列1,列2,···) VALUES(列值1,列值2,···)

      >在表名后面给出插入的列名,其他没有指定的列 等同于插入null值

      >在values后给出的列值,值的顺序和个数必须和前面指定的列对应

      》INSERT INTO 表名 VALUES(列值1,列值2,···)

      >当没有给出插入 的列时表示插入所有的列

      >值的个数步需 和该表中的列数相等,同时顺序和创建时的顺序相同

    (2)修改数据

      》UPDATE 表名 SET 列1=列值1, 列2=列值2,···[WHERE 条件]

      》条件为可选:必须时一个Boolean类型的值或者表达式。

    (3)删除数据

      》DELETE FROM 表名 (WHERE 条件)

      》TRUNCATE TABLE 表名: 包含两个步骤,先删除表,然后在创建表,该操作最终导致数据无法回滚

5、DCL

一个项目创建一个用户,一个项目对应只有一个数据库,这个用户只对这个数据库有权限,其他数据库无法进行修改

       (1)创建用户

       》CREATE USER 用户名@ip地址 IDENTIFIED BY ‘密码’

       >用户只能在指定的ip地址上登陆

       》CREATE USER 用户名@‘%’ IDENTIFIED BY ‘密码’

       >用户可以在任意ip地址上登陆

       (2)给用户权限

       》GRANT 权限1,······权限ON 数据库.* TO 用户名@IP地址,一般使用root用户进行权限授权,grant all on mydb.* to 张zhangsan@localhost

       >权限、用户、数据库

       >给用户分配指定的权限:GTANT CREATE ALTER DROP INSERT UPDATE DELETE SELETE

       (3)撤销授权

       》REVOKE 权限1,权限2···权限n ON 数据库.* FROM 用户名@ip地址

       (4)查看权限

》SHOW GRANTS FOR 用户名@IP地址

(5)删除权限

》DROP USER 用户名@IP地址

6、DQL

       (1)基础查询 单表查询

       》SELECT * FROM tableName 查询所有列

       》SELECT 列1,列2 FROM tableName 查询指定列

       》SELECT DISTINCT * FROM tableName 去掉完全重复的列

       或者SELECT DISTINCT 列1 FROM tableName 会针对这一列进行去重操作

       》列运算

           >SELECT 列1*1.5 FROM tableName 当然也可以连个列 相加减乘除,当给的值无法进行转换为整数的时候就当作0来处理,所以不能用来处理字符串,字符串相加通过下列方式:SELECT CONCAT(列1,列2) FROM tableName。

              >SELECT 列1+IFNULL(列2,0) FROM tableName  处理null值任何东西和null相加结果是null

              >SELECT 列1 as 姓名,列2 as 年龄 FROM tableName   起别名,其中as可以省略

       (2)条件查询

       》SELECT语句查询的过程中也可以通过WHERE子句来控制记录

       >SELECT name FROM stu WHEERE age >10 and age <20

       > SELECT name FROM stu WHEERE age IN (‘10’, ‘20’)

       (3)模糊查询

       》SELECT * FROM stu WHERE name like ‘张_或___或张%’:一个下划线匹配一个字符,百分号是匹配0-n各字符

       (4)排序

       》升序:SELECT * FROM stu ORDER BY name 【ASC】

       》降序:SELECT * FROM stu ORDER BY name DESC

       》多列进行排序:SELECT * FROM stu ORDER BY name ASC, age DESC

       (5)聚合函数

       》COUNT: SELECT COUNT(【*,类名,列位置例如1】) FROM stu 记录所有不为null的数目

       》MAX:SELECT MAX(age) FROM stu

       》MIN: SELECT MIN(age) FROM stu

       》SUM: SELECT SUM(age) FROM stu

       》AVE: SELECT AVE(age) FROM stu

       (6)分组查询

       》SELECT job,COUNT(*) ,MAX(sal) FROM emp GROUP BY job

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿五~

我再马路边只收1分钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值