数据库:mysql基本增删查改

数据库

1数据库

1.1)数据库概念

数据存储
	
	
	集合
	数组
	
		容器----->使用完毕就不存在了集合对象/数组---被回收!
	IO流
		字节流/字符流   将数据存储到配置文件/xxx.txt文件中 ,效率低(耗时)
		
	在计算机上--按照数据库软件---
	关系型数据库
			SQLServer,Oracle,db2,Mysql(开源,小型化)
	非关型数据库
			典型代表:mangodb/redis(key-value形式)---(缓存一些数据)
			

验证是否安装完毕(登录成功,说明mysql的环境变量也配置了)
C:\Users\zhangyang>mysql -uroot -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |   相关配置信息库
| mysql              |   存储相关表:user 用户表(管理员)
| performance_schema |   mysql性能相关的
| test               |   测试的库
+--------------------+
4 rows in set (0.00 sec)


-- 创建数据库
create  database 数据库名;
mysql> create database mydb_01;
Query OK, 1 row affected (0.01 sec)

-- 方式2: create database if not exists 数据库名;   如果不存在这个库,创建一个新的
mysql> create database if not exists my_db02; 
Query OK, 1 row affected (0.02 sec)

-- 查看数据库的信息 (数据库名,以及数据库的默认的编码格式)
mysql> show create database mydb_01;
+----------+------------------------------------------------------------------+
| Database | Create Database                                                  |
+----------+------------------------------------------------------------------+
| mydb_01  | CREATE DATABASE `mydb_01` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.01 sec)

-- 修改数据库的这个编码格式gbk
alter databse 数据库名 DEFAULT(省略不写) CHARACTER set  gbk ;
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 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)


-- 删除数据库
drop database 数据库名;
mysql> drop database my_db02;
Query OK, 0 rows affected (0.02 sec)

-- 方式2
drop database if exists 数据库名; 如果存在,删除该库
mysql> drop database if exists mydb_02;
Query OK, 0 rows affected (0.00 sec)

-- 修改库的字符集:创建数据库的时候直接修改了库的字符集
 create database if not exists 数据库名 default(不写) character set 字符集 ;
mysql> create database if not exists mydb_04 default character set gbk ;
Query OK, 1 row affected (0.01 sec)


----------------------------------------------------------------

DDL语句操作表
创建表
create table 表名(
	字段名称1 字段类型1,
	字段名称2 字段类型2,
	字段名称3 字段类型3,
	.....
	字段名称n 字段端类型n
);

常见字段类型:
		varchar(m):m多少个字符-------------mysql字符串类型
		int:  默认int(11):11位(记录实际字符)		int(num):参数指定长度   mysql:整数类型
									int(4)		1	------>0001
		double(5,2)                mysql的小数类型 :表示小数5位,小数点后保留2位
		时间:
				date				mysql的日期时间(仅仅是日期,不包含具体时间):  年月日   2020/11/5
				datetime			mysql的日期时间:是日期+具体时间  2020/11/5 时分秒...
				timestamp(时间戳)   具体哪个时间操作的表  2020//11/15  16:16这个时间修改了表的字段

	在创建表之前,先使用这个库
	use 数据库名

	

1.2)数据库基本操作(增删查改)

mysql> use mydb_01;
Database changed

查询该库中的表
mysql> show tables;
Empty set (0.00 sec)
		
在mydb_01创建一个学生表
	学生表				数据类型
			姓名 	varchar(3)
			年龄	int
			性别	varchar(2)
			分数	double
			出生日期 date

mysql> create table student(
    -> name varchar(3),
    -> age int,
    -> gender varchar(2),
    -> socre double(3,1),
    -> birthday date
    -> );
Query OK, 0 rows affected (0.03 sec)

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

	
--- 查询表的结构
desc 表名;
mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| name     | varchar(3)  | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| socre    | double(3,1) | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

-- 修改表
-- 给表中新增一列 (加入一个新的字段)
mysql> alter table student add address varchar(10);
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| name     | varchar(3)  | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
| gender   | varchar(2)  | YES  |     | NULL    |       |
| socre    | double(3,1) | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| address  | varchar(10) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.04 sec)

-- 修改表的数据类型
mysql> alter table student modify gender varchar(3);
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| name     | varchar(3)  | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
| gender   | varchar(3)  | YES  |     | NULL    |       |
| socre    | double(3,1) | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| address  | varchar(10) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.05 sec)

-- 修改表的名称 change
mysql> alter table student change gender sex varchar(3);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| name     | varchar(3)  | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
| sex      | varchar(3)  | YES  |     | NULL    |       |
| socre    | double(3,1) | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| address  | varchar(10) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.05 sec)


-- 修改表的名称
alter table 表名 rename to 新表名;
mysql> alter table student rename to teacher;
Query OK, 0 rows affected (0.01 sec)

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

2.表数据的增删查找

2.1)插入数据1) (给表中的每一个字段赋值)

-- 使用图形化工具--- 前期写sql语句(练)
-- 进入到mydb_04数据库中
#注释(类上语法语气词)
USE mydb_04;
-- 在mydb_04数据库中创建一张表 student
-- 编号 int类型
-- 姓名 varchar(5)
-- 年龄 int类型
-- 性别 varchar(2)
-- 成绩 double(3,1)
-- 出生日期 data(日期)
CREATE TABLE student(
	id INT, -- 编号
	NAME VARCHAR(5), -- 姓名
	age INT , -- 年龄
	gender VARCHAR(2) , -- 性别
	socre DOUBLE(3,1) , -- 成绩
	birthday DATE
	
);
-- 查询表的结构
DESC student;
-- DML语句:操作语句
-- 插入数据1) (给表中的每一个字段赋值)
-- insert into 表名 values(值1,值2,值3,.....)
INSERT INTO student VALUES(1,'高圆圆',27,'女',99.8,'1990-2-3') ;
-- 插入部分字段2) 
-- 注意事项:没有赋值的字段都是NULL(空值)
-- insert into 表名(id,name,age,gender) values(值1,....) ;
INSERT INTO student(id,NAME,age,gender) VALUES(2,'张冲',23,'男') ;
-- 注意事项:
-- 1)插入数据的时候,插入字段顺序必须要表的字段对应上
INSERT INTO student  VALUES('李文擘',3,23,'男',90.8,'1997-11-5') ;
-- 2)如果是给全部字段插入数据,中间逗号隔开,依次插入多条语句!
INSERT INTO student VALUES (3,'赵又廷',38,'男',66.9,'1987-11-5'),
			   (4,'唐宇飞',26,'男',89.9,'1995-11-2') ;

2.2)带条件删除表的记录

-- 删除表的记录
-- delete from 表名 条件(where)
-- 带条件删除
DELETE FROM student WHERE socre = 90.8 ;
-- 删除全表数据:
--- TRUNCATE table 表名 和 delete from 表名 有什么区别?
-- 1)delete from 表名:删除全表数据  TRUNCATE table 表名 :删除表以及表中的数据--创建一张一模一样的表
-- 2)是否对自增长的主键影响?
/*
	delete from 表名 不会影响自增长的主键(删除全表的数据)(不会清除自增长主键!)
	TRUNCATE TABLE 表名 :直接删除了表(并且同时创建一张一模一样的表)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值