您的位置:首页 > 数据库

数据库基础总结 || 一 ||

2019-08-05 17:41 120 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_45010625/article/details/98496532

数据库概述

数据库是什么?

存储数据的仓库,本质上就是存储数据的文件系统(文件夹)

数据据库管理系统

  • 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客户端 连接 返回值的编码方式

    查看 MySQL 内部设置的编码 show variables like ‘character%’;
  • 单独设置(临时)
    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;

每天积累一点点,加油!!! 一个小白正在努力成长中…

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: