MySQL学习笔记前二张

第一章数据库的简介

数据库
数据库(DataBase,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。
数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。

数据库管理系统软件
数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。
它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。
它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。

大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
数据库管理系统是数据库系统的核心,是管理数据库的软件。
数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。
有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。

数据库系统
数据库系统DBS(Data Base System,简称DBS)通常由软件、数据库和数据管理员组成。
软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。
数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。
数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。

MySQL
MySQL的管理
--安装
--linux下:
yum -y install mariadb mariadb-server
OR
yum -y install mysql mysql-server
--windows下:
http://dev.mysql.com/downloads/mysql/
--Linux下启动
service mysqld start --开启
chkconfig mysqld on --设置开机自启
OR
systemctl start mariadb --开启
systemctl enable mariadb --设置开机自启

--查看
ps aux |grep mysqld --查看进程
netstat -an |grep 3306 --查看端口

--设置密码
mysqladmin -u root password '123' --设置初始密码,初始密码为空因此-p选项没有用
mysqladmin -u root -p123 password '1234' --修改root用户密码

--登录
mysql --本地登录,默认用户root,空密码,用户为[email protected]
mysql -u root -p 1234 --本地登录,指定用户名和密码,用户为[email protected]
mysql -u root -p 1234 -h 192.168.31.95 --远程登录,用户为[email protected]

--MySQL的常用命令

--启动mysql服务与停止mysql服务命令:
net start mysql
net stop mysql

--登陆与退出命令:
mysql -h 服务器IP -P 端口号 -u 用户名 -p 密码
--mysql -h 127.0.0.1 -P 3306 -u root -p 123

--配置文件
/* my.ini文件:[mysql] default-character-set=gbk
[mysqld] character-set-server=gbk */

SQL及其规范
SQL(Structured Query Language结构化查询语言)是一种数据库查询语言和程序设计语言,主要用于管理数据库中的数据,如存取数据、查询数据、更新数据等。
SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。
在使用它时,只需要发出"做什么"的命令,"怎么做"是不用使用者考虑的。
SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
<1> 在数据库系统中,SQL语句不区分大小写。但字符串常量区分大小写。建议命令大写,表名库名小写;
<2> SQL语句可单行或多行书写,以";"结尾。关键词不能跨多行或简写。
<3> 用空格和缩进来提高语句的可读性。子句通常位于独立行,便于编辑,提高可读性。
SELECT * FROM tb_table
WHERE NAME="YUAN";
<4> 注释:单行注释:--
多行注释:/*......*/
<5>SQL语句可以折行操作
<6>SQL语言由DDL,DML,DQL和DCL组成
(1)数据库定义语言(Data Definition Language,DDL)
数据库定义语言主要用于定义数据库、表等,其中包括CREATE语句、ALTER语句和DROP语句。
CREATE语句用于创建数据库、数据表等,ALTER语句用于修改表的定义等,DROP语句用于删除数据库、删除表等。
(2)数据库操作语言(Data Manipulation Language,DML)
数据库操作语言主要用于数据库、表进行添加、修改、删除操作,其中包括INSERT语句、UPDATE语言和DELETE语句。
INSERT语句用于插入数据,UPDATE语句用于修改数据,DELETE语句用于删除数据。
(3)数据库查询语言(Data Query Language,DQL)
数据库查询语言主要用于查询语言,也就是指SELECT语句。
SELECT语句查询数据库中的一条或多条数据。
(4)数据库控制语言(Data Control Language,DCL)
数据库控制语言主要用于控制用户的访问权限,其中包括GRANT语句、REVOKE语句、COMMIT语句和ROLLBACK语句。
GRANT语句用于给用户增加权限,REVOKE语句用于收回用户的权限,COMMIT语句用于提交事务,ROLLBACK语句用于回滚事务。

第二章 数据库和表(table)基本操作

数据库操作
-- 1.创建数据库(在磁盘上创建一个对应的文件夹)
CREATE DATABASE [IF NOT EXISTS] 库名 [CHARACTER SET xxx] --xxx表示编码取值为utf8或者gbk
--[IF NOT EXISTS]此可选项的意思是如果不存在表就创建,如果存在表则不创建。

-- 2.查看数据库
SHOW DATABASES;--查看所有数据库
SHOW CREATE DATABASE 库名; --查看数据库的创建方式

-- 3.修改数据库
ALTER DATABASE 库名 [CHARACTER SET xxx]; --(一般不需要)

-- 4.删除数据库
DROP DATABASE [IF EXISTS] 库名;

-- 5.使用数据库
USE 库名; --切换数据库
--注意:进入到某个数据库后没办法再退回之前状态,但可以通过USE进行切换
SELECT DATABASE();--查看当前使用的数据库

MySQL数据类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

数据表操作
--1.创建表(类似于一个excel表)
--基本语法
CREATE TABLE 表名(
field1 type[完整性约束条件],
field2 type,
...
fieldn type
)[CHARACTER SET XXX];

--创建一个员工表employee
mysql>CREATE TABLE employee(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
gender BIT DEFAULT 1, -- gender CHAR(1) DEFAULT 1 --或者 TINYINT(1)
birthday DATE,
entry_date DATE,
job VARCHAR(20),
salary DOUBLE(4,2) unsigned,
resume TEXT -- 注意,这里作为最后一个字段不加逗号
);

--2.查看表信息
DESC 表名; --查看表结构,即查看表的字段信息,其中包括字段名、字段类型等信息

SHOW COLUMNS FROM 表名; --查看表结构

SHOW TABLES; --查看当前数据库中的所有的表

SHOW CREATE TABLE 表名; --查看当前数据库表建表语句

--3.修改表结构
--(1)增加列(字段) --默认在表已有字段的后面添加
ALTER TABLE 表名 ADD [COLUMN] 列名 类型[完整性约束条件][FIRST|AFTER 字段名];
--ALTER TABLE user ADD addr VARCHAR(20) NOT NULL UNIQUE FIRST/AFTER username;
--FIRST用于将新添加的字段设置为表的第一个字段
--AFTER用于将新添加的字段添加到指定的"已存在字段名"的后面

--添加多个字段
ALTER TABLE employee
ADD addr VARCHAR(20),
ADD age INT FIRST,
ADD depart VARCHAR(20) AFTER name;

--(2)修改一列类型
ALTER TABLE 表名 MODIFY 列名 类型 [完整性约束条件][FIRST|AFTER 字段名];
--ALTER TABLE employee MODIFY age TINYINT DEFAULT 20;
--ALTER TABLE employee MODIFY age TINYINT AFTER id;

--(3)修改列名
ALTER TABLE 表名 CHANGE [COLUMN] 列名 新列名 类型 [完整性约束条件][FIRST|AFTER 字段名];
--ALTER TABLE employee CHANGE age Age INT DEFAULT 28 FIRST;

--(4)删除一列
ALTER TABLE 表名 DROP [COLUMN] 列名;
--思考:删除多列呢?
ALTER TABLE 表名 DROP [COLUMN] 列名1,
DROP [COLUMN] 列名2;
--删一个填一个呢?
ALTER TABLE employee
ADD salary FLOAT(6,2) UNSIGNED NOT NULL AFTER name,
DROP addr;

--(5)修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;

--(6)修改表所用的字符集
ALTER TABLE student CHARACTER SET utf8;--字符集为utf8
ALTER TABLE student CHARACTER SET gbk; --字符集为gbk

--4.删除表
DROP TABLE 表名;

猜你喜欢

转载自www.cnblogs.com/p1035/p/11725669.html