8.SQL基本操作

SQL操作所有关系型数据库的规则

SQL通用语法:

  • 1.SQL语句可以单行或者多行书写,以分号结尾
  • 2.可使用空格和锁进来增加语句的可读性
  • 3.SQL 语句不区分大小写,关键字建议使用大写
  • 4.三种注释
  •       单行注释   -- (两个横岗,一个空格)或者 # 
  •       多行注释   /*  */

SQL分类

数据定义语言(DDL)

常用的有CREATE和DROP,用于在数据库中创建新表或删除表,以及为表加入索引等

数据查询语言(DQL: Data Query Language)

数据检索语句,用于从表中获取数据。通常最常用的为保留字SELECT,并且常与FROM子句、WHERE子句组成查询SQL查询语句。

数据操纵语言(DML:Data Manipulation Language)

主要用来对数据库的数据进行一些操作,常用的就是INSERT、UPDATE、DELETE。

数据控制语言(DCL)

通过GRANT和REVOKE,确定单个用户或用户组对数据库对象的访问权限。授权的;

DDL:操作数据库

1.操作数据库:CRUD

(1)C(create):创建 

create datebase;

(2)R(Retrietrieve):查询

实例1:查看所有数据库

四个项目分别对应了安装路径中的文件:其中information_schema不是一个文件夹,而是一个视图,所以只有三个文件

mysql里边放了很多的核心数据

performance_schema 性能提升有关的数据库,里边有很多的数据库

前三个尽量不要去修改

test:空的数据库,使用也不会使用到

实例1.1   查看字符集:show create database;

实例2:创建并查看数据库

先创建一个名为 test_db 的数据库:

mysql> CREATE DATABASE test_db;
Query OK, 1 row affected (0.12 sec)

创建之前判断是否存在:

create database if not exists test_db1;

创建默认的字符集是UTF8,设定其他字符集:create database db3 character set gbk;

实例3:创建db4数据库,判断是否存在,并制定字符集为gbk

show database if not exists db4 character set dbk;

实例3:使用 LIKE 从句

先创建三个数据库,名字分别为 test_db、db_test、db_test_db。

1) 使用 LIKE 从句,查看与 test_db 完全匹配的数据库:

mysql> SHOW DATABASES LIKE 'test_db';
+--------------------+
| Database (test_db) |
+--------------------+
| test_db            |
+--------------------+
1 row in set (0.03 sec)

2) 使用 LIKE 从句,查看名字中包含 test 的数据库:

mysql> SHOW DATABASES LIKE '%test%';
+--------------------+
| Database (%test%)  |
+--------------------+
| db_test            |
+--------------------+
| db_test_db         |
+--------------------+
| test_db            |
+--------------------+
3 row in set (0.03 sec)

3) 使用 LIKE 从句,查看名字以 db 开头的数据库:

mysql> SHOW DATABASES LIKE 'db%';
+----------------+
| Database (db%) |
+----------------+
| db_test        |
+----------------+
| db_test_db     |
+----------------+
2 row in set (0.03 sec)

4) 使用 LIKE 从句,查看名字以 db 结尾的数据库:

mysql> SHOW DATABASES LIKE '%db';
+----------------+
| Database (%db) |
+----------------+
| db_test_db     |
+----------------+
| test_db        |
+----------------+
2 row in set (0.03 sec)

(3)U(Update):修改

ALTER DATABASE 来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为:

  1. ALTER DATABASE [数据库名] {
  2. [ DEFAULT ] CHARACTER SET <字符集名> |
  3. [ DEFAULT ] COLLATE <校对规则名>}

语法说明如下:

  • ALTER DATABASE 用于更改数据库的全局特性。
  • 使用 ALTER DATABASE 需要获得数据库 ALTER 权限。
  • 数据库名称可以忽略,此时语句对应于默认数据库。
  • CHARACTER SET 子句用于更改默认的数据库字符集。

实例:alter database db3 character set utf8;

(4)D(delete):删除

drop database db4;

(5)使用数据库

查询当前正在使用的数据库名称

  select database();查看当前正在使用的数据库名称

USE test_db;使用函数据库

DDL :操作表

(1)增

create table 表名(

    列名1 数据类型1,

    列名2 数据类型2,

    .......

    列名n  数据类型n

);

* 注意:最后一列,不需要加逗号(,)

create table student(

  id int,

  name varchar(32),

  age int,

  score double(4,1),

  birthday data,

  iinsert_time timestamp

);

(2)删

drop table 表明

drop  table  if exists 表名

实例:

create table 表明 like  别复制的表名;

(3)改(update)

1.修改表名

      alter table 表明 rename to 新的表名

2.修改表的字符集

      alter table stu character set utf8;

3.添加一列

      alter table 表名 add 列明 数据类型

4.修改列名称,类型

      alter table 表名 changel  列名 新列别 新数据类型;

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

5.删除列

      alter table 表名 drop 列名

(4)查(retrieve)

查询所有数据库中的表名称:show tables;

查询表结构:desc 表名;

SQL数据类型:

1.整数类型

INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT

2.小数类型

FLOAT、DOUBLE、DECIMAL

FLOAT 类型的取值范围如下:

  • 有符号的取值范围:-3.402823466E+38~-1.175494351E-38。
  • 无符号的取值范围:0 和 -1.175494351E-38~-3.402823466E+38。


DOUBLE 类型的取值范围如下:

  • 有符号的取值范围:-1.7976931348623157E+308~-2.2250738585072014E-308。
  • 无符号的取值范围:0 和 -2.2250738585072014E-308~-1.7976931348623157E+308。

注意:在 MySQL 中,定点数以字符串形式存储,在对精度要求比较高的时候(如货币、科学数据),使用 DECIMAL 的类型比较好,另外两个浮点数进行减法和比较运算时也容易出问题,所以在使用浮点数时需要注意,并尽量避免做浮点数比较。

3.日期类型

YEARTIMEDATEDTAETIMETIMESTAMP

4.字符串类型

5.二进制类型

 BITBINARYVARBINARYTINYBLOBBLOBMEDIUMBLOB 和 LONGBLOB

数据操纵语言:DML

1.添加数据

   insert into 表名(列名1,列名2,列名3,....列名n) values(值1,值2,......值n)

   1.列名和值要一一对应

   2.如果表名后,不定义列名,则默认给所有列添加值

   3.除了数字类型,其他类型需要使用引号因起来

2.删除数据

    语法:delete from 表名 [where 条件]

    注意:

                如果不加条件,则删除表中所有记录 delete from stu;

                truncate table stu;删除表,再创建一个一模一样的空表

3.修改数据

     update 表名 set 列名1=值1,列名2 = 值2,....【where 条件】

     例如:update stu set age = 117 where id=3;

               update set age = 117,score=100 where id=2;

    如果不加任何条件,则将表中的数据全部修改

DQL:查询语句

1.排序查询

       order by 子句

       *order by 排序字段1  排序方式1,排序方式1   排序方式2.......

        例子:  select * from student order by math --;

       ASC      升序  默认

       DESC   降序

      例子:

       数学成绩升序排列: select  * from stu order by math  ASC;

       数序成绩升序排列,如果数序成绩一样,那么按照英语成绩排名:select * from stu order bu math ASC,english ASC; 第二排序条件只有当第一排序条件一样的时候才会去使用

      如果有多个排序条件,当前一个一样的时候,才会去判断第二条件

2.聚合函数

 

3.分组查询

 

4.分页查询

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值