MySQL基础语法

MySQL基础

在这里插入图片描述

什么是数据库?

就是存储数据库的仓库

之前怎么存储数据?
	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 8.0 数据库安装与配置教程参考文章

检查MySQL是否安装成功

安装mysql之后:
方式一:登录 dos窗口登录
方式二:方式登录 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.

数据库的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               |
+--------------------+
5 rows in set (0.00 sec)

-- drop database if exists 库名 ; 如果存在这个库删除
mysql> drop database if exists myee_2203;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

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

数据库DDL语句(数据库定义语句)之建表,修改表,查询表,删除表…

-- 建表之前,必须使用哪个库
-- use 库名;
mysql> use ee_2203;
Database changed
mysql>
/*
  create table 表名(
  		字段名称1 字段类型1,
  		字段名称2 字段类型2,
  		...
  		...
  		字段名称n 字段类型n
  ) ;
*/
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)

-- 查看表的结构 
-- 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> drop table if exists teachear;
Query OK, 0 rows affected (0.01 sec)

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

练习:

一.表操作语法 
	创建一个库:MyEE_2203
	1)创建一个员工表
		字段     属性
		id        整形
		name     字符串(长度为20)
		gender    字符串(长度为2)
		birthday  日期型(date)
		email	   字符串(长度为10)
		remark     字符串(长度为50)

	2).修改表练习
		2.1 在员工表基础上增加age列
		2.2 修改email列长度为50
		2.3 删除remark列
		2.4 列名name修改为username
		
	1)给员工表添加三个员工信息
	2)通过指定id删除员工
	3)查询所有员工信息
--创建一个库:MyEE_2203
mysql> create database MyEE_2203;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cat                |
| exam               |
| mm_wiki            |
| myee_2203          |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
8 rows in set (0.00 sec)

--1)创建一个员工表
--		字段     属性
--		id        整形
--		name     字符串(长度为20)
--		gender    字符串(长度为2)
--		birthday  日期型(date)
--		email	   字符串(长度为10)
--		remark     字符串(长度为50)
-- 建表之前,必须使用哪个库
-- use 库名;
mysql> use myee_2203;
Database changed

mysql> create table worker(
    -> id int,
    -> name varchar(20),
    -> gender varchar(2),
    -> birthday date,
    -> email varchar(10),
    -> remark varchar(50)
    -> );
Query OK, 0 rows affected (0.04 sec)

--查看表
mysql> show tables;
+---------------------+
| Tables_in_myee_2203 |
+---------------------+
| worker              |
+---------------------+
1 row in set (0.00 sec)

--查看表结构
mysql> desc worker;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| email    | varchar(10) | YES  |     | NULL    |       |
| remark   | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)

--2).修改表练习
--		2.1 在员工表基础上增加age列
mysql> alter table worker add age int;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc worker;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| email    | varchar(10) | YES  |     | NULL    |       |
| remark   | varchar(50) | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
7 rows in set (0.00 sec)

--		2.2 修改email列长度为50
mysql> alter table worker modify email varchar(50);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc worker;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| email    | varchar(50) | YES  |     | NULL    |       |
| remark   | varchar(50) | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
7 rows in set (0.00 sec)

--		2.3 删除remark列
mysql> alter table worker drop remark;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc worker;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| email    | varchar(50) | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
--		2.4 列名name修改为username
mysql> alter table worker change name username varchar(10);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc worker;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(10) | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| email    | varchar(50) | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

--1)给员工表添加三个员工信息
--插入给指定表中插入数据
mysql> insert into worker values (1,'豆三岁','男','1999/7/8','2583160759@qq.com',22);
Query OK, 1 row affected (0.01 sec)

--查询当前表中的数据
mysql> select * from worker;
+------+----------+--------+------------+-------------------+------+
| id   | username | gender | birthday   | email             | age  |
+------+----------+--------+------------+-------------------+------+
|    1 | 豆三岁   || 1999-07-08 | 2583160759@qq.com |   22 |
+------+----------+--------+------------+-------------------+------+
1 row in set (0.00 sec)

mysql> insert into worker values (2,'柠柠融','女','2000/3/13','414892494@qq.com',21);
Query OK, 1 row affected (0.01 sec)

mysql> insert into worker values (3,'赵大头','女','2022/5/11','123456789@163.com',1);
Query OK, 1 row affected (0.01 sec)

--3)查询所有员工信息
mysql> select * from worker;
+------+----------+--------+------------+-------------------+------+
| id   | username | gender | birthday   | email             | age  |
+------+----------+--------+------------+-------------------+------+
|    1 | 豆三岁   || 1999-07-08 | 2583160759@qq.com |   22 |
|    2 | 柠柠融   || 2000-03-13 | 414892494@qq.com  |   21 |
|    3 | 赵大头   || 2022-05-11 | 123456789@163.com |    1 |
+------+----------+--------+------------+-------------------+------+
3 rows in set (0.00 sec)

--2)通过指定id删除员工
mysql> delete from worker where id=3;
Query OK, 1 row affected (0.01 sec)

mysql> select * from worker;
+------+----------+--------+------------+-------------------+------+
| id   | username | gender | birthday   | email             | age  |
+------+----------+--------+------------+-------------------+------+
|    1 | 豆三岁   || 1999-07-08 | 2583160759@qq.com |   22 |
|    2 | 柠柠融   || 2000-03-13 | 414892494@qq.com  |   21 |
+------+----------+--------+------------+-------------------+------+
2 rows in set (0.00 sec)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值