目录
数据库DDL语句(数据库定义语句)之建表,修改表,查询表,删除表...
数据库简介
就是存储数据库的仓库 之前怎么存储数据? 1)定义变量,类似局部变量,随着方法调用而结束; 2)容器存储: 数组--->查询快,增删慢 集合--->单列集合Collection/双列集合Map 长度可变, List<Student> 字符串缓冲区:StringBuffer/StringBuilder 最终可能需要将字符串缓冲区类型---String 3)IO流 Input Output 可以将内容存储磁盘上 文件中 (读写复制---很耗时) 4)数据库来存储数据 执行效率高 底层有树结构在里面 数据库支持 "事务",来解决 业务中存在问题 "转账操作"! 即使关机了,数据永久保存!
数据库的分类
关系型数据库: 书写sql语句 (Structure Query Language:结构化查询语言) oracle :收费 大型公司企业居多(西安银行,汇丰,神州数码...) 买数据库,买oracle第三方服务... mysql :免费 中小型公司使用居多 sqlserver:跟.net平台兼容性比较好一些 sqllite: 轻量级的关系数据库,嵌入式里面居多 mariaDB:跟mysql同级别的 非关系型数据库:NoSQL数据库 键值(Key-Value)存储数据库 : redis 做数据缓存------ 分布式系统架构 使用redis 分布式缓存 文档类型数据库: MongoDb
mysql的基本语法
安装mysql之后 1)方式登录 dos窗口登录 2)方式登录 mysql自带的客户端登录
C:\Users\Administrator>mysql -uroot -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.5.40 MySQL Community Server (GPL)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
数据库的DDL语句(数据库的定义语句)之库的操作
-- :普通注释 当行注释 /* mysql的多行注释*/ #特殊注释 -- 查询当前mysql中自带的所有库有哪些 库在我们电脑磁盘上----> 文件夹
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema | mysql的默认配置库
| mysql | 有user表 (管理员用户表) :root用户就在这个库中
| performance_schema | mysql其他库(性能相关)
| test | 测试库,但是不用它,自己创建新的库
+--------------------+
4 rows in set (0.00 sec)
-- 创建库 -- create database 库名;
mysql> create database myEE_2203 ;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myee_2203 |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
-- create database if not exists 库名;
mysql> create database if not exists ee2203;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ee2203 |
| myee_2203 |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)
-- 查询创建库的字符集 -- show create database 库名;
mysql> show create database myee_2203;
+-----------+--------------------------------------------------------------------+
| Database | Create Database |
+-----------+--------------------------------------------------------------------+
| myee_2203 | CREATE DATABASE `myee_2203` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+-----------+--------------------------------------------------------------------+
1 row in set (0.00 sec)
-- 修改库的字符集 -- alter database 库名 default character set 字符集名称;
mysql> alter database myee_2203 default character set gbk;
Query OK, 1 row affected (0.00 sec)
mysql> show create database myee_2203;
+-----------+-------------------------------------------------------------------+
| Database | Create Database |
+-----------+-------------------------------------------------------------------+
| myee_2203 | CREATE DATABASE `myee_2203` /*!40100 DEFAULT CHARACTER SET gbk */ |
+-----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)
-- 删除库 -- drop database 库名 ;
mysql> drop database ee2203;
Query OK, 0 rows affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myee_2203 |
| mysql |
| performance_schema |
| test |
+--------------------+
-- drop database if exists 库名 ; 如果存在这个库删除
mysql> drop database ee2203;
Query OK, 0 rows affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myee_2203 |
| mysql |
| performance_schema |
| test |
+--------------------+
数据库DDL语句(数据库定义语句)之建表,修改表,查询表,删除表...
mysql常见的数据类型 int :整数类型 默认最大长度11位字符,给int类型的数据的时候,当前存储的是值的真实长度 举例 年龄字段age int类型 int(字符数): 整数类型, 给int(3)这个值的时候,实际存储3位,但是赋值的时候不够3位 (使用很少) id字段 1-----int(3) -------------------001 varchar(最大支持255个长度): 字符串类型 指定varchar(指定长度) date:仅仅是日期类型 datetime:日期+时间类型 timestap:时间戳 (举例:管理员添加一个商品,商品上架的时间:当前系统瞬时时间 :2021-5-11 16:50分) double:小数类型 double(几位数,小数点后保留的位数) 举例: double(4,2): 4位,小数点后保留2位 clob:大字符类型 支持 "大文本" blob:大字节类型 最大支持4G
-- 建表之前,必须使用哪个库 -- use 库名; */
mysql> create table student(
-> id int,
-> name varchar(10),
-> age int,
-> gender varchar(2),
-> address varchar(50),
-> socre double(3,1)
-> );
Query OK, 0 rows affected (0.02 sec)
-- 查询当前库中有哪些表
-- show tables ;
mysql> show tables ;
+-------------------+
| Tables_in_ee_2203 |
+-------------------+
| student |
+-------------------+
1 row in set (0.00 sec)
mysql>
-- 查看表的结构 -- desc 表名;
mysql> desc student;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| gender | varchar(2) | YES | | NULL | |
| address | varchar(50) | YES | | NULL | |
| socre | double(3,1) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
-- 修改表的字段名称 -- alter table 表名 change 旧字段名称 新的字段名称 以前的字段数据类型;
mysql> alter table student change gender sex varchar(2) ;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc student;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| sex | varchar(2) | YES | | NULL | |
| address | varchar(50) | YES | | NULL | |
| socre | double(3,1) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
-- 修改表的字段类型 modify -- alter table 表名 modify 字段名称 新的字段类型 ;
mysql> alter table student modify address varchar(100) ;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc student;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| sex | varchar(2) | YES | | NULL | |
| address | varchar(100) | YES | | NULL | |
| socre | double(3,1) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
-- 修改表:给表中添加一个新的字段 -- alter table 表名 add 字段名称 字段类型;
mysql> alter table student add description varchar(200) ;
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0
-- 复制一张表
-- create table 新表名 like 旧表名;
mysql> create table teachear like student ;
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+-------------------+
| Tables_in_ee_2203 |
+-------------------+
| student |
| teachear |
+-------------------+
2 rows in set (0.00 sec)
-- 删除表 -- drop table 表名; -- drop table if exists 表名;
mysql> alter table student add description varchar(200) ;
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0
-- 复制一张表
-- create table 新表名 like 旧表名;
mysql> create table teachear like student ;
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+-------------------+
| Tables_in_ee_2203 |
+-------------------+
| student |
| teachear |
+-------------------+
2 rows in set (0.00 sec)