1.为什么要使用数据库
持久化:把数据保存到可掉电式存储设备中已供之后使用,数据持久化意味着将内存中的数据保存到硬盘上加以固化。
持久化的作用:将内存中的数据存储在关系型数据库中。
2.数据库与数据库管理系统
2.1数据库的相关概念:
DB:数据库(Database)
即存储数据的“仓库”,其本质是一个文件系统。它保存了一系列有组织的数据。
DBMS:数据库管理系统(Database Management System)
是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控
制。用户通过数据库管理系统访问数据库中表内的数据。
SQL:结构化查询语言(
Structured Query Language)
专门用来与数据库通信的语言。
2.数据库的使用
1.查询所以的数据库
show databases;
2.创建自己的数据库
create database 数据库名;
3.使用自己的数据库
use 数据库名;
4.查看某个数据库的所有表
show tables from 数据库名;
5.创建新的表格
create table 表名称(
字段名 数据类型,
字段名 数据类型
);
6.查看表的数据
select table 数据库表名称
7.添加一条记录
insert into 表名称 values(值列表);
8.查看表的创建信息
show create table 表名称\G
9.查看数据库的创建信息
show create database 数据库名\G
10.删除表格
drop table 表名称;
11.删除数据库
drop database 数据库名;
12.关于sql乱码问题
第一步:查询编码命令
show variables like 'character_%';
show variables like 'collation_%';
第二步:修改mysql的数据目录下的my.ini配置文件
```Properties files default-character-set=utf8 #默认字符集 [mysqld] # 大概在76行左右,在其下添加 … character-set-server=utf8 collation-server=utf8generalci
第三步:重启服务
`service mysqld restart`
13.修改密码的命名
Properties files
使用mysql数据库
USE mysql;
修改'root'@'localhost'用户的密码规则和密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysqlnativepassword BY 'abc123';
刷新权限
FLUSH PRIVILEGES;
**root用户密码忘记,重置的操作**
1: 通过任务管理器或者服务管理,关掉mysqld(服务进程)
2: 通过命令行+特殊参数开启mysqld mysqld --
defaults-file="D:\ProgramFiles\mysql\MySQLServer5.7Data\my.ini" --skip-grant-tables
3: 此时,mysqld服务进程已经打开。并且不需要权限检查
4: mysql -uroot 无密码登陆服务器。另启动一个客户端进行
5: 修改权限表
(1) use mysql;
(2)update user set authentication_string=password('新密码') where user='root' and Host='localhost';
(3)flush privileges;
6: 通过任务管理器,关掉mysqld服务进程。
7: 再次通过服务管理,打开mysql服务。
8: 即可用修改后的新密码登陆。
**修改数据库和表的字符编码**
修改编码:
(1)先停止服务,(2)修改my.ini文件(3)重新启动服务
SQL 说明: 如果是在修改my.ini之前建的库和表,那么库和表的编码还是原来的Latin1,要么删了重建,要么使用 alter语句修改编码。 mysql> create database 0728db charset Latin1; Query OK, 1 row affected (0.00 sec)
mysql> use 0728db;
Database changed
mysql> show create table student\G * 1. row * Table: student Create Table: CREATE TABLE student
( id
int(11) NOT NULL, name
varchar(20) DEFAULT NULL, PRIMARY KEY (id
) ) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
mysql> alter table student charset utf8; #修改表字符编码为UTF8 Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> show create table student\G * 1. row * Table: student Create Table: CREATE TABLE student
( id
int(11) NOT NULL, name
varchar(20) CHARACTER SET latin1 DEFAULT NULL, #字段仍然是latin1编码 PRIMARY KEY (id
) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec) mysql> alter table student modify name varchar(20) charset utf8; #修改字段字符编码为UTF8 Query OK, 0 rows affected (0.05 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> show create table student\G * 1. row * Table: student Create Table: CREATE TABLE student
( id
int(11) NOT NULL, name
varchar(20) DEFAULT NULL, PRIMARY KEY (id
) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql> show create database 0728db;; +--------+-----------------------------------------------------------------+ |Database| Create Database | +------+-------------------------------------------------------------------+ |0728db| CREATE DATABASE 0728db
/*!40100 DEFAULT CHARACTER SET latin1 */ | +------+-------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> alter database 0728db charset utf8; #修改数据库的字符编码为utf8
Query OK, 1 row affected (0.00 sec)
+--------+-----------------------------------------------------------------+ |Database| Create Database | +--------+-----------------------------------------------------------------+ | 0728db | CREATE DATABASE 0728db
/*!40100 DEFAULT CHARACTER SET utf8 */ | +--------+-----------------------------------------------------------------+ 1 row in set (0.00 sec) ```
3.sql分类
DDL(Data Definition Languages、数据定义语言),这些语句定义了不同的数据库、表、视图、索
引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。
主要的语句关键字包括 CREATE 、 DROP 、 ALTER 等。
DML(Data Manipulation Language、数据操作语言),用于添加、删除、更新和查询数据库记录,并检查数据完整性。
主要的语句关键字包括 INSERT 、 DELETE 、 UPDATE 、 SELECT 等。
SELECT是SQL语言的基础,最为重要。DCL(Data Control Language、数据控制语言),用于定义数据库、表、字段、用户的访问权限和安全级别。
主要的语句关键字包括 GRANT 、 REVOKE 、 COMMIT 、 ROLLBACK 、 SAVEPOINT 等
因为查询语句使用的非常的频繁,所以很多人把查询语句单拎出来一类:DQL(数据查询语言)。
还有单独将 COMMIT 、 ROLLBACK 取出来称为TCL (Transaction Control Language,事务控制语言)。
1.数据导入指令
mysql> source 文件路径
Mysql的基本使用
1.SELECT基本语句
-------------------方法二《推荐》------------------------------
SELECT variable AS '名称','Value',set_time,set_by
FROM sys_config;
----------------------方法一------------------------------
SELECT * FROM sys_config;
1.2列的别名
重命名一个列
便于计算
紧跟列名,也可以在列名和别名之间加入关键字AS,别名使用双引号,以便在别名中包含空格或特
殊的字符并区分大小写。
AS 可以省略
建议别名简短,见名知意
#列的别名
#1.可以用AS关键字
SELECT variable AS '名称','Value',set_time,set_by
FROM sys_config;
#2.也可以省略AS关键字,用空格隔开即可
SELECT variable '名称','Value',set_time,set_by
FROM sys_config;
1.3去除重复行
在SELECT语句中使用关键字DISTINCT去除重复行
1.4空值参与运算
所有运算符或列值遇到null值,运算的结果都为null
1.5着重号
我们需要保证表中的字段、表名等没有和保留字、数据库系统或常用方法冲突。如果真的相同,请在
SQL语句中使用一对``(着重号)引起来。
1.6查询常数
SELECT '尚硅谷' as corporation, last_name FROM employees;
1.7显示表的结构
DESCRIBE employees;或DESC employees;
Field:表示字段名称。
Type:表示字段类型,这里 barcode、goodsname 是文本型的,price 是整数类型的。
Null:表示该列是否可以存储NULL值。
Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一
部分;MUL表示在列中某个给定值允许出现多次。
Default:表示该列是否有默认值,如果有,那么值是多少。
Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。
1.8过滤数据
SELECT DISTINCT 列名
FROM 表名;
SELECT 字段1,字段2
FROM 表名
WHERE 过滤条件
------------------
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;
标签:set,数据库,Mysql,student,mysql,SELECT,row
From: https://www.cnblogs.com/cyf0913/p/17220979.html