day2

数据库的基本概念

1.数据库的英文单词:DataBase  简称DB
2.什么是数据库啊?
	*用于存储数据和管理的仓库

3.数据库的特点
	1.持久化存储数据。其实数据库就是一个文件系统
	2.方便存储和管理数据
	3.使用了统一的方式操作数据库 --SQL  !!!!

4.常用MySQL和Oracle

——————————————————————————————————

MySQL数据库软件

MySQL数据目录
	*几个概念
		*数据库:文件夹
		*表:文件
		*数据:

——————————————————————————————————

SQL

1.什么是SQL?
	Structured Query Language:结构化查询语言
	其实就是定义了操作所有关系型数据库。
	每一种数据库操作的方式存在不一样的地方称为“方言”

2.SQL通用语法
	1.SQL 语句可以单行或多行书写,以分号结尾。
	2.可以使用空格和缩进增进可读性
	3.SQL不区分大小写,关键字建议使用大写
	4.3种注释
		*单行注释:-- 注释内容 或 # 注释内容(mysql特有)  多行注释  /* 注释内容 */
		*第一种用的多
		
3.SQL分类
	1 Data Definition Language (DDL 数据定义语言) 如:建库,建表 
		关键词:create,drop,alter等
	2 Data Manipulation Language(DML 数据操纵语言),如:对表中的记录操作增删		改 	
		关键词:insert,delete,update等
	3 Data Query Language(DQL 数据查询语言),如:对表中的查询操作 
		关键词:select,where等
	4 Data Control Language(DCL 数据控制语言),如:对用户权限的设置 
		关键词:GRANT,REVOKE

在这里插入图片描述
——————————————————————————————————

DDL:创建数据库,表

1.操作数据库:CRUD(增删改查)
	1.C(Create):创建
		*创建数据库:
			*create database 数据库名称;
		*创建数据库,并判断是否存在,如果存在就不创建了
			*create database if not exists 数据库名称;
		*创建数据库,并指定字符集
			*create database 数据库名称 character set 字符集名称;
		*创建db4数据库,判断是否存在,并指定其字符集为gbk(重要 )
			*create database if not exists db4 character set gbk;
			
	2.R(Retrieve):查询
		*查询所有数据库的名称
			*show databases;
		*查看某个数据库的字符集,查询某个数据库的创建语句
			*show create database 数据库名称;
			
	3.U(Updata):修改
		*修改数据库的字符集
			*alter database 数据库名称 character set 字符集名称;
			
	4.D(Delete):删除
		*删除数据库
			*drop database 数据库名称;
		*判断数据库存在,存在再删除
			* drop database if exists 数据库名称:

	5.使用数据库
		*查询正在使用的数据库名称
			*select database();
		*使用数据库
		 	*use 数据库名称;
		 	
2.操作表
	1.C(Create):创建
		1.语法:
			*create table 表名(
				列名1 数据类型1,
				列名2 数据类型2,
				...
				列名n 数据类型n
			);
			*注意:最后一列不需要加逗号!!!
			
			*数据类型:
				1.int 整数类型
					*age int,
				2.double 小数类型
					*score double(5,2)  //最多有五位,小数点后面保留2位,最大值999.99
				3.date:日期,只包含年月日的日期 yyyy-mm-dd
				4.datetime :年月日,时分秒都包含 yyyy-mm-dd hh:mm:ss
				5.timestamp:时间错类型 yyyy-mm-dd hh:mm:ss
					*如果将来不给这个字段赋值,贼默认使用当前系统时间自动赋值
				6.varchar(m) :字符串,m为最大长度
					*name varchar(20) 

	*创建表:
		create table student(
			id int,
			name varchar(32),
			age int,
			score double(4,1),
			birthday date,
			insert_time timestamp 
		);

	*复制表:
		create table 表名 like 被复制的表名;

	2.R(Retrieve):查询
		*查询某个数据库中所有表名称
			*show tables;
		*查询表结构
			*desc 表名;
			
	3.U(Updata):修改
		1.修改表名
			*alter table 表名 rename to 新的表名;
		2.修改表的字符集
			*alter table 表名 character set 新的字符集;
		3.修改添加一列
			*alter table 表名 add 列名 数据类型;
		4.修改列的名称 类型
			*alter table 列名 change 新的类名 新数据类型; 
		5.删除列
			*alter table 表名 drop 列名;
		
	4.D(Delete):删除
		*drop table 表名;
		*drop table if exists 表名:
		

下面这个图方便理解表
在这里插入图片描述
——————————————————————————————————
尽量自己打 不要忘了SQL语句!
使用小工具只是为了增加阅读性

——————————————————————————————————

DML:增删改表中数据!!!

1.添加数据
	*语法:
		*insert into 表名(列名1,列名2...) values(值1.值2....); 
	*注意事项:
		1.列名和值要一一对应
		2.如果表名后,不定义列名,贼默认给所有列添加值(建议不要偷懒)
		3.除了数字类型,其他类型需要使用''引起来
			*例如date,一开始没有加引号,发现2000-12-19就不行
			 然后改成了20001219好像又成了
			*正确还是应该是"2000-12-19"
		4.	!插入中文字符报错怎么办?
			好像需要两步,表字符集修改,字段字符集修改(一开始没改这个就错了)
				1.ALTER TABLE stu CHARACTER SET utf8;
				2.ALTER TABLE stu CHANGE NAME NAME VARCHAR(20) CHARACTER SET utf8;
				 
2.删除数据
	*语法:
		*delete from 表名 where 条件
			如DELETE FROM stu WHERE id = 74;
	*注意:
		1.如果不加条件,则删除所有记录了!!!!
		2.如果要删除所有记录
			1.delete from 表名;--不推荐使用,因为他有多少条记录就会删除多少
			2.TRUNCATE TABLE 表名; --删除表,然后在创建一个一模一样空表!!
				*推荐用2噢,效率更高
				
3.修改数据
	*语法:
		*update 表名 set 列名1=值1,列名2=值2,.. where 条件
			*如UPDATE stu SET age = 20 WHERE id = 1;
	*注意:
		如果不加任何条件,贼会将表中所有记录全部修改

——————————————————————————————————

DQL:查询表中的记录

1.检索所有列
	*select * from 表名;  //很重要啊
2.检索单个列
	*SELECT age FROM stu;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值