数据库基础总结 || 一 ||
数据库概述
数据库是什么?
存储数据的仓库,本质上就是存储数据的文件系统(文件夹)
数据据库管理系统
- MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。
- Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
dos命令操作数据库
启动数据库和关闭数据库
方式一:
操作windows服务
方式二:dos命令操作mysql
== - net start mysql(启动) ==
== - net stop mysql(停止) ==
登录和退出mysql数据库
第一种
mysql -u用户名 -p密码
mysql -uroot -proot
第二种
mysql -u用户名 -p
密码
第三种
mysql -h主机地址 -u用户名 -p密码
mysql -h 127.0.0.1 -uroot -proot
sql语句
分类:
1.DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。
]关键字:create,drop,alter等
2.DML(Data Manipulation Language)数据操作语言
用来对数据库中表内的数据进行增删改。
关键字:insert,delete, update等
3.DCL(Data Control Language)数据控制语言(了解)
用来定义数据库的访问权限和安全级别,及创建用户。
关键字:GRANT, REVOKE等
4.TCL(Transaction Control Language) 事务控制语言
用于控制数据库的事务操作, (事务: 逻辑上一组完成的操作)
关键字: COMMIT,SAVEPOINT,ROLLBACK等
5.DQL(Data Query Language) 数据查询语言 (掌握)
DQL语言并不是属于MYSQL官方的分类,但是对数据库的操作最多就是查询,所以 我们的程序员把查询语句的语句称作为DQL语言
sql语句
(数据定义语言)
创建数据库
create database 数据库名;
判断是否存在并创建数据库(了解)
create database if not exists 数据库名;
创建数据库并指定字符集(了解)
create database 数据库名 character set 字符集;
查询数据库
show databases;
查询数据库中的所有数据库
修改数据库
格式:
alter database 数据库名 default character set 字符集;
删除数据库
drop database 数据库名;
切换数据库
use 数据库;
操作表
#####创建表
create table 表名(字段名1 字段类型1; 字段名2 字段类型 2 );
字段名称:自定义
字段类型:
数据类型:
int:
varchar: 可变字符串
char: 固定长度的字符串
date
float/double
查看表
查看所有表: 查看所有表
查看表结构: desc 表名称;
查询建表语句: show create table 表名;
快速创建相同的表结构: create table 新表名 like 旧表名;
修改表结构
添加字段 :
alter table 表名 add 字段名 类型;
修改字段的类型 :
alter table 表名 modify 字段名 新类型;
修改字段名称和类型 :
alter table 表名 change 旧名称 新名称 类型 ;
删除列 :
alter table 表名 drop 列名;
修改表名称 :
rename table 表名 to 新表名;
修改字符集 :
alter table 表名 character set 字符集;
删除表
直接删除表:
drop table 表名;
判断表是否存在并且删除表
drop table if exists 表名;
DML(数据操作语言)
添加全部字段
insert into 表名 (字段名1, 字段名2, 字段名3…) values (值1, 值2, 值3);// 插入所有字段
insert into 表名 values (值1, 值2, 值3);// 插入所有字段,顺序要和数据库表字段顺序保持一致
添加全部字段
insert into 表名(字段名1,字段名2,...) values (值1,值2,...);插入所有字段
insert into 表名 values(值1,值2,值3);
插入所有字段顺序要与数据库保持一致
DOS命令窗口操作数据乱码问题的解决
-
错误说明: gbk (我们在dos中输入的) -----> 数据库(utf8)
当我们使用DOS命令行进行SQL语句操作如有有中文会出现乱码,导致SQL执行失败 -
错误原因:
因为MySQL的客户端设置编码是utf8,而系统的DOS命令行编码是gbk,编码不一致导致的乱码 -
解决方案:
查看 MySQL 内部设置的编码 show variables like ‘character%’;
设置mysql客户端 连接 返回值的编码方式 - 单独设置(临时)
set character_set_client=gbk; set character_set_connection=gbk; set character_set_results=gbk; - 快捷设置(临时):set names gbk;
- 修改配置文件(永久):修改MySQL安装目录下的my.ini文件,重启服务所有地方生效。
修改记录
不带条件修改数据 :
update 表名 set 字段名 = 值,字段名 = 值.... ; // 修改表中的所有数据 update 表名 set 字段名 = 值,字段名 = 值 where 字段名=值 and 字段名 = 值; // 修改满足条件的数据
删除记录
delete from 表名; // 逐行删除表中的所有数据 根据条件删除数据: delete from 表名 where 字段名=值; truncate删除表记录: truncate table 表名; // 删除表,再创建一张结构一样的新表.(摧毁整个表再从新创建一张表,类型结构与上一张表一样)
综合练习
创建一个数据库,及一张表,及各种不同增删改查 create database day01; use day01; create table product( pid int, pname varchar(20), price double, category_id varchar(32) ); INSERT INTO product(pid,pname,price,category_id) VALUES(1,'联想',5000,'c001'); INSERT INTO product(pid,pname,price,category_id) VALUES(2,'海尔',3000,'c001'); INSERT INTO product(pid,pname,price,category_id) VALUES(4,'JACK JONES',800,'c002'); INSERT INTO product(pid,pname,price,category_id) VALUES(5,'真维斯',200,'c002'); INSERT INTO product(pid,pname,price,category_id) VALUES(6,'花花公子',440,'c002'); INSERT INTO product(pid,pname,price,category_id) VALUES(7,'劲霸',2000,'c002'); //复制的数据
简单查询:
查询所有列: select * from 表名;
查询指定列: select 字段名1,字段名2… from 表名;
别名查询: select 字段名1 as 别名, 字段名2 as 别名… from 表名 as 表别名;
清除重复值: select distinct 字段名 from 表名;(了解)
查询结果参与运算: select 列名1 + 固定值 from 表名;(了解)
/*查询所有字段 select * from 表名;(格式) */ select * from product; /*查询部分字段 select 字段名1,字段名2... from 表名;(格式) */ select pname,price from product; /*别名格式: 表别名: select aa.* from 表名 as aa ;(格式) 列别名: select 字段名1 as "别名",字段名2 as "别名" from 表; */ select aa.pname from product as aa; select pname as "商品名称",price "商品价格" from product; /*去重复: select distinct 字段名 from 表名;(格式) */ select distinct price from product;
每天积累一点点,加油!!! 一个小白正在努力成长中…
- 数据库基础知识总结
- [总结]为了效率,应该把基础运算交给数据库还是程序?
- 关系数据库—mysql基础总结
- 数据库基础知识总结
- 【数据库】基础知识总结
- 关系型数据库基础—第一章.总结
- 数据库基础知识总结
- 数据库基础知识、常用操作总结
- 数据库基础sql语句总结(以Oracle为主介绍,并与mysql,sql server做对比)一
- 中移在线数据库面试题(仅根据朋友去面试的基础上总结)
- mysql--基础知识总结 数据库,数据表基本
- 数据库基础---数据库系统概论个人总结版
- 数据库学习总结之 基础知识
- 数据库基础知识总结
- PHP基础----PHP 与 MySQL----php操作数据库标准思路(自己总结的,没有标号)
- 数据库基础知识总结(二)--语言
- 数据库SQL 基础(总结)
- 数据库基础再总结
- 关系型数据库基础总结
- Orcale数据库基础知识总结之orcale数据库的DDL和DML操作