第七周 Java语法总结之数据库大全_DDL_DML_DQL_约束_备份与还原_表的关系_三大范式_多表查询(内连接_外连接_子查询)_musql事务_隔离级别

Posted Nohandsman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第七周 Java语法总结之数据库大全_DDL_DML_DQL_约束_备份与还原_表的关系_三大范式_多表查询(内连接_外连接_子查询)_musql事务_隔离级别相关的知识,希望对你有一定的参考价值。

数据库

DDL语句:数据库定义语句

1.库的增删查改

1.查询当前mysql下所有的数据库
mysql8.0  自带的  跟5.5自带的不一样
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |    mysql默认的一些配置
| mysql              |    mysql库里面包含user表用户表 (权限用户)
| performance_schema |    mysql性能相关的库
| sakila             |    提供其他三个库 sakila sys world  提供了一些例库   练习sql语句
| sys                |
| world              |
| zy                 |  自定义的库(开发者自定义)
+--------------------+
7 rows in set (0.00 sec)
2.创建数据库

create database 库名 ;

方式1
mysql> create database mydb_01;  
Query OK, 1 row affected (0.02 sec)

create database if not exists 库名;

方式2
mysql> create database if not exists mydb_02;
Query OK, 1 row affected (0.02 sec)
3.查看创建数据库的默认的字符集(了解)

show create database 库名;

mysql> show create database mydb_01;
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                                                   |
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
| mydb_01  | CREATE DATABASE `mydb_01` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
4.修改数据库的字符集(了解)

alter database 库名 (default)可以省略 character set=字符集;

mysql> alter database mydb_01 default character set gbk ;
Query OK, 1 row affected (0.01 sec)
mysql> show create database mydb_01;
+----------+----------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                    |
+----------+----------------------------------------------------------------------------------------------------+
| mydb_01  | CREATE DATABASE `mydb_01` /*!40100 DEFAULT CHARACTER SET gbk */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>
5.删除库

drop database 库名;

drop database if exists 库名;

mysql> drop database mydb_02;
Query OK, 0 rows affected (0.02 sec)

mysql> drop database if exists mydb_03;
Query OK, 0 rows affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb_01            |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
| zy                 |
+--------------------+
6.模糊查询mysql服务中所有的带character字符集的全局变量
show variables like '%character%' ;

mysql> show variables like '%character%' ;
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | gbk                                                      |
| character_set_connection | gbk                                                     |
| character_set_database   | utf8mb4                                                 |
| character_set_filesystem | binary                                                  |
| character_set_results    | gbk                                                     |
| character_set_server     | utf8mb4                                                 |
| character_set_system     | utf8mb3                                                 |
| character_sets_dir       | C:\\Program Files\\MySQL\\MySQL Server 8.0\\share\\charsets\\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.01 sec)

如果出现中文乱码:
 character_set_client 客户端  utf8
 character_set_results  结果集 utf8

改动字符集:临时解决中文乱码
mysql> set character_set_client=utf8;
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> set character_set_results=utf8;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> show variables like '%character%' ;
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | utf8mb3                                                 |
| character_set_connection | gbk                                                     |
| character_set_database   | ut
f8mb4                                                 |
| character_set_filesystem | binary                                                  |
| character_set_results    | utf8mb3                                                 |
| character_set_server     | utf8mb4                                                 |
| character_set_system     | utf8mb3                                                 |
| character_sets_dir       | C:\\Program Files\\MySQL\\MySQL Server 8.0\\share\\charsets\\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.00 sec)

2.表的增删改查

1.创建表
create table 表明(
	列名1 字段类型1,
    列名2 字段类型2,
    ...
    列名n 字段类型n
) ; 

数据库常用的字段类型
int------>默认int(11)  取的是当前实际长度 (推荐)
		id int,---编号			1 
		
int(长度):指定长度
			id int(3)   		 1---->001 

varchar(字符长度):字符串类型数据   '' "" 不写 引号  ,习惯去使用''或者双引号
double(1,2):小数类型  
   举例
   		double(3,2) ----小数类型,3位数,小数点后保留2位
   					123.56
日期类型
  date  仅仅表示日期,不表示时分秒
  		"2021-8-12"
  datatime  不仅表示日期具体的时间
  		"2021-8-12 17:31:00"
  timestap:时间戳  
  		给表中插入数据, 显示当前插入/修改/删除/查询数据那一刻时间 (具体到秒"2021-8-12 18:00:01")	
    
 注意事项:就是给那一个库中创建表  使用哪个库(选择数据库名)
 use 库名;
mysql> use mydb_01;
Database changed
mysql>

mysql> create table student(
    -> id int,
    -> name varchar(20),
    -> gender varchar(10),
    -> address varchar(50),
    -> age int
    -> )
    -> ;
Query OK, 0 rows affected (0.05 sec)
 
2.查询当前数据库中有哪些表

show tables ;

mysql> show tables;
+-------------------+
| Tables_in_mydb_01 |
+-------------------+
| student           |
+-------------------+
1 row in set (0.01 sec)
3.查询当前表的结构

desc 表名 ;

mysql> desc student;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int         | YES  |     | NULL    |       |
| name    | varchar(20) | YES  |     | NULL    |       |
| gender  | varchar(10) | YES  |     | NULL    |       |
| address | varchar(50) | YES  |     | NULL    |       |
| age     | int         | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
修改表
4.给student表添加一列

alter table 表名 add 字段名称 字段类型;

mysql> alter table student add email varchar(50) ;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int         | YES  |     | NULL    |       |
| name    | varchar(20) | YES  |     | NULL    |       |
| gender  | varchar(10) | YES  |     | NULL    |       |
| address | varchar(50) | YES  |     | NULL    |       |
| age     | int         | YES  |     | NULL    |       |
| email   | varchar(50) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
5.修改表中的字段类型

alter table 表名 modify 字段名称 更改后的字段类型;

mysql> alter table student modify address varchar(30) ;
Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int         | YES  |     | NULL    |       |
| name    | varchar(20) | YES  |     | NULL    |       |
| gender  | varchar(10) | YES  |     | NULL    |       |
| address | varchar(30) | YES  |     | NULL    |       |
| age     | int         | YES  |     | NULL    |       |
| email   | varchar(50) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
6.修改表中的字段名称

alter table 表名 change 旧列名 新列名 字段类型;

mysql> alter table student change gender sex varchar(10) ;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int         | YES  |     | NULL    |       |
| name    | varchar(20) | YES  |     | NULL    |       |
| sex     | varchar(10) | YES  |     | NULL    |       |
| address | varchar(30) | YES  |     | NULL    |       |
| age     | int         | YES  |     | NULL    |       |
| email   | varchar(50) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
7.删除某一列字段

alter table 表名 drop 字段名称;

mysql> alter table student drop email;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int         | YES  |     | NULL    |       |
| name    | varchar(20) | YES  |     | NULL    |       |
| sex     | varchar(10) | YES  |     | NULL    |       |
| address | varchar(30) | YES  |     | NULL    |       |
| age     | int         | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
8.修改表的表名

alter table 旧表名 renameto 新表名;

mysql> alter table student rename to stu;
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
+-------------------+
| Tables_in_mydb_01 |
+-------------------+
| stu               |
| teacher           |
+-------------------+
2 rows in set (0.01 sec)
9.复制一张表结构和以前表的结果一样

create table 新表名 like 旧表名;

mysql> create table teacher like student; //字段复制
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
+-------------------+
| Tables_in_mydb_01 |
+-------------------+
| student           |
| teacher           |
+-------------------+
2 rows in set (0.01 sec)
10.删除表

drop tabble 表名;

drop table if exists 表名;

mysql> drop table if exists teacher;
Query OK, 0 rows affected (0.03 sec)

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

DML语句:操作表的记录

11.插入语句

1)**insert into 表名 values(值1,值2,值3…) ;**插入全表数据 :那么每一个参数值必须和字段类型匹配! (不会报错,警告)

mysql> insert into stu values(1,'高圆圆','女','西安市',30) ;
Query OK, 1 row affected (0.01 sec)

插入全表:一次性插入多条数据

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

  INSERT INTO 
  	  stu 
  VALUES 
      (3,'文章','男','西安市',35),
      (4,'马伊琍','女','上海市',42),
      (5,'德玛西亚','男','艾欧尼亚',25) ;

插入部分字段

3) insert into 表名(部分字段1,字段2…) values(值1,值2…)

INSERT INTO 
stu(NAME,sex,address) VALUES('王宝强','男','咸阳市') ;

-- 注意:插入部分字段,必须字段数量和插入值的数量必须匹配
-- 不管插入部分字段还全部字段,那么必须要和当前类型一致
12.最基本的查询:查全表数据

select * from 表名;

mysql> insert into stu values(1,'高圆圆','女','西安市',30) ;
Query OK, 1 row affected (0.01 sec)

mysql> select * from stu ;
+------+--------+------+---------+------+
| id   | name   | sex  | address | age  |
+------+--------+------+---------+------+
|    1 | 高圆圆 || 西安市  |   30 |
+------+--------+------+---------+------+
1 row in set (0.01 sec)

如果中文乱码
改动下面的字符集编码即可
mysql> show variables like '%character%' ;
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+以上是关于第七周 Java语法总结之数据库大全_DDL_DML_DQL_约束_备份与还原_表的关系_三大范式_多表查询(内连接_外连接_子查询)_musql事务_隔离级别的主要内容,如果未能解决你的问题,请参考以下文章

20155335俞昆《java程序设计》第七周总结

《面向对象程序设计(java)》第七周学习总结

20165212第七周学习总结

第七周学习总结

王艳 201771010127《面向对象程序设计(java)》第七周学习总结

周强 201771010141 《面向对象程序设计(java)》第七周学习总结