第二章:SQL语言(1.概述)(2.语句分类)(3.DDL操作数据库)(4.DDL操作表)(5.DML操作)

1.概述:

SQL语言(Structure Query Language):结构化查询语言;SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际标准组织(ISO)采纳为关系数据库语言的国际标准。

SQL是一种标准化的语言,它允许你在数据库上执行操作,如创建项目、查询内容、更新内容、并删除条目等操作。

create(创建)、read(查)、update(修改)、delete(删)通常称为CRUD操作。

2.语句分类

DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等。

DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)。

DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。

DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

3.DDL操作数据库(sql语句以;结束)

1.创建:

创建新的数据库:(例:我定义了一个叫mysql1的数据库);

mysql> create databaes mysql1;

2.查看:

查看当前数据库服务器中的所有数据库//show   databases;

mysql> show databases;//查看当前所有的数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mysql1             |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

查看当前当前数据库的定义信息//show   create  database  mysql1;

mysql> show create database mysql1;
+----------+-----------------------------------------------------------------------------------------------+
| Database | Create Database                                                                               |
+----------+-----------------------------------------------------------------------------------------------+
| mysql1   | CREATE DATABASE `mysql1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ |
+----------+-----------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

3.修改:

查看当前数据库,并把当前数据库(mysql1)的字符集改为utf8;//alter  database  mysql1  character  set  utf8;

mysql> alter database mysql1 character set utf8;
Query OK, 1 row affected, 1 warning (0.06 sec)

4.删除:

删除该数据库// drop  database  mysql1;

mysql> drop database mysql1;
Query OK, 2 rows affected (0.14 sec)

5.其他语句:

查看当前使用的数据库;//select   databases();

mysql> select database();//显示现在在mysql1数据库当中
+------------+
| database() |
+------------+
| mysql1     |
+------------+
1 row in set (0.00 sec)

切换数据库//  use +库名;

4.DDL操作表

1.创建新表(前提是在数据库中创建新表)//  create  table  +表名(字段1  字段类型(长度) 约束,字段2  字段类型  约束,........);

代码演示为:

mysql> create table biao(
    -> id int,                         //id为int型
    -> name varchar(20),               //name为可变的字符类型(长度为20)
    -> sex varchar(6),                 
    -> tel varchar(20)
    -> );
Query OK, 0 rows affected (0.07 sec)

1.常用的数据类型:

int:整型

double:浮点型 ,例如double(4,2)表示这个数最多4位,其中必须有2位小数,及最大数为99.99;

char:固定长度的字符串类型,char(9)-“aaa”-该字符串占9位;

varchar:可变长度字符串类型,varchar(10)-"aaa"-该字符串占3位;

text:字符串类型;

blob:字节类型;

date:日期类型,格式为:year-month-day;

time:时间类型,格式为:hour:minute:second

timestamp:时间戳类型  year-month-day  hour:minute:second  会自动赋值

datatime:日期时间类型  year-month-day  hour:minute:second

常用的约束:

主键约束:primary  key--------识别本行数据

唯一约束:unique  key---------这列内容不能重复

非空约束:not null--------------这列内容不能为空

默认约束:default--------------指的是不指定的时候给的默认值

外键约束:foreign key--------

自动增长:auto_increment---指的是每增加一条数据,本列的值会自动加一

2.当前数据库中的所有表////show  tables;

mysql> show tables;
+------------------+
| Tables_in_mysql1 |
+------------------+
| biao             |
+------------------+
1 row in set (0.00 sec)

3.查看表的字段信息

mysql> desc biao;//当前查看biao的字段信息
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | varchar(6)  | YES  |     | NULL    |       |
| tel   | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

4.在该表的基础上增加一个“备注”列

mysql> alter table biao add 备注 ;
Query OK, 0 rows affected (0.12 sec)
Records: 0  Duplicates: 0  Warnings: 0

5.删除“备注”列

mysql> alter table biao drop 备注;//删除备注列
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

 6.更改表名为biaoge

mysql> rename table biao to biaoge;//将biao(此表的名称)更改为biaoge
Query OK, 0 rows affected (0.11 sec)

7.查看表格的创建细节

mysql> show create table biaoge;//查看biaoge的创建细节
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                                                                                                                                                 |
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| biaoge | CREATE TABLE `biaoge` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL,
  `sex` varchar(6) DEFAULT NULL,
  `tel` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

8.修改表的字符集为gbk

mysql> alter table biaoge character set gbk;//将biaoge的字符串类型转换成gbk格式
Query OK, 0 rows affected (0.09 sec)
Records: 0  Duplicates: 0  Warnings: 0

9.修改列名

mysql> alter table biaoge change name username varchar(20);//将name更改为username
Query OK, 0 rows affected (0.18 sec)
Records: 0  Duplicates: 0  Warnings: 0

10.删除现有的表

mysql> drop table biaoge;//删掉此biaoge
Query OK, 0 rows affected (0.11 sec)

5.DML操作

DML 是对表中的数据进行增、删、改的操作。不能与DDL混淆了。

主要有:insert(增)、delete(删)、uptade(改)

在mysql 中,字符串类型和日期类型都要用单引号括起来。

空值:null

(1)插入操作:insert

语法:insert   into(可省略不写) 表名(列名1,列名2,列名3.....)values(列值1,列值2,列值3......);

注意:列名与列值的类型、个数、顺序要一一对应起来

可以把列名当作java中的形参,把列值当作实参

参不能超出列定义的长度

如果插入空值,使用null

插入日期和字符一样,都使用引号括起来

(2)修改操作:update

语法:update  表名 set  列名1=列值1,列名2=列值2...where  列名=值

(3)删除操作:delete

语法:delete  表名  where  列名=值

猜你喜欢

转载自blog.csdn.net/Feng0811xin/article/details/84259230