MySQL(part1)

新博客地址:https://kyzhou.bitcron.com/

MySQL 第一章

参考:实验楼 https://www.shiyanlou.com/courses

sudo service mysql start

或者通过
rpm -qa | grep mysql
如果已安装,可以进行卸载:
rpm -e --nodeps mysql
检查系统中是否安装mysql数据库,如果没有安装:
sudo apt-get install mysql-server #mysql的服务端和核心程序。
sudo apt-get install mysql-client #mysql的客户端安装
安装好服务端,和客户端后检查验证是否安装成功。
sudo netstat -tap | grep mysql
此时可以修改mysql的配置文件
sudo vim /etc/mysql/my.cnf

启动mysql数据库并登陆:
mysql -u root
查看有哪些数据库:
show databases;
连接其中的一个数据库
use <数据库名称>
查看该数据库中的表格:
show tables;
退出该mysql
quit 或者exit

MySQL第二章

一、创建一张表格

  • CREATE DATABASE mysql_shiyan;
    查看创建的表格
  • show databases;
    连接上我们创建好的数据库
  • use mysql_shiyan;
    查看改数据库中有几张表
  • show tables;
    注意:数据表(table)简称表,他是数据库最重要的组成部分之一,数据库只是一个框架,表才是实质内容。一个数据库中一般会有多张表他们之间通过建立关系联系起来,成为一个可以交叉查阅的数据。

在数据库中新建一张表

  • CREATE TABLE 表名
    (
    列名a 数据类型(数据长度),
    );

    查看创建的表的表中的内容
    SELECT * FROM employee;

用INSERT向数据库中插入数据
INSERT INTO 表的名字(列名a,列名b)
VALUES(值1,值2);

MySQL第三章

SQL约束:约束是一种限制。它通过对表的行或者列做出限制来确保表的数据的完整性、唯一性。

约束类型主键默认值唯一外键非空
关键字PRIMARY KEYDEFAULTUNIQUEFOREIGN KEYNOT NULL

删除已有数据库:
DROP DATABASE 数据库名称

加载数据:
source ***.sql

一、主键约束:PRIMARY KEY 是约束表中的某一行,作为这一行的唯一标识,在一张表中通过主键就能准确的定位某一行。主键不能重复,且不能为空。
  • 主键类型,和写法:
    CREATE TABLE employee
    (id int(10) PRIMARY KEY,
    name CHAR(20));

  • CONSTRAINT dpt_pk PRIMARY KEY (dpt_name)

  • 复合主键:CONSTARINT proj_pk PRIMARY KEY (proj_num,proj_name)

二、默认约束:(DEFAULT)
  • people_num INT(10) DEFAULT ‘10’
唯一约束:(UNIQUE)
  • UNIQUE (phone)
三、外键约束:(FOREIGN KEY)

外键既能确保数据的完整性,也能表现表之间的关系。
一个表可以有多个外键,每个外键必须REFERENCES另外一个表的主键,被外键约束的列,取值必须在他参考的列中有对应的值。

CONSTRAINT emp_fk FOREIGN KEY (in_dpt) REFERENCES department(dpt_name);

四、非空约束:(NOT NULL)

MySQL第四章

SELECT的用法

SELECT基本语法
  • 将创建SQL表写成sql文件,同时创建插入数据的SQL表。用source导入

  • SELECT语句的基本格式:
    SELECT 查询的列名 FROM 表名 WHERE 限制条件;

  • 数学符号条件:
    SELECT name,age FROM employee WHERE age> 25;

  • 逻辑运算符 AND和OR:
    SELECT name,age FROM employee WHERE age>25 OR age<30;
    SELECT name,age FROM employee WHERE age BETWEEN 25 AND 30;

  • IN 和 NOT IN:
    SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN(‘dpt3’,‘dpt4’)

  • 通配符:
    在SQL中 __ 和%是通配符,其中 __ 代表一个未指定字符,%代表不定个未指定字符。与LIKE连用。
    SELECT name,age,phone FROM employee WHERE phone LIKE '1101__'表示号码的后两位不知道。
    SELECT name,age,phone FROM employee WHERE name LIKE ‘J%’

  • 排序
    通过DESC和ASC来控制升序还是降序。
    SELECT name,age,salary,phone FROM employee ORDER BY salary DESC

  • 内置函数和计算
    SQL允许对表中的数据进行计算。对此,SQL有5个内置函数,这些函数对SELECT的结果进行操作。

函数名:COUNTSUMAVGMAXMIN

SELECT MAX(salary) AS max_salary ,MIN(salary) AS MIN(salary) FROM employee

  • 子查询
    例:查询“Tom”的员工所在的部分共有多少项目,员工信息存在employee表中,工程信息存在project表中。
    SELECT of_dpt ,COUNT(project_name) AS count_project FROM project GROUP BY of_dpt HAVING of_dpt IN (SELECT in_dpt FROM employee WHERE name=“Tom”);
  • 连接查询 JOIN
  • 在处理多张表时,子查询,仅在结果来自一个表时才有用,如果需要显示两个或多个表中的数据,这是要用JOIN。
    SELECT id,name,people_num FROM employee,departmant
    WHERE employee.in_dpt = department.dpt_anme
    ORDER BY id

MySQL第五章

数据库的修改和删除工作:

  • 删除数据库
    DROP DATABASE test_01
  • 重命名一张表
    RENAME TABLE 原名 TO 新名字;

或者
ALTER TABLE 原名 RENAME 新名;
或者
ALTER TABLE 原名 RENAME TO新名;

  • 删除一张表:
    DROP TABLE 表名字;
  • 增加一列
    ALTER TABLE 表名 ADD COLUMN 列名字 数据类型 约束;
    或者:
    ALTER TABLE 表名字 ADD 列名字 数据类型 约束;
    可以发现:新增加的列,被默认放置在这张表的最右边。如果要把增加的列插入在指定位置,则需要在语句的最后使用AFTER关键词(“AFTER 列1” 表示新增的列被放置在 “列1” 的后面)。

如果想放在第一列用FIRST关键字

  • 删除一列,和刚才的增加一列很相似,只是将ADD改为DROP.
  • 重命名一列
    ALTER TABLE 表的名字 CHANGE 原列名 新列名 数据类型 约束;
    注意:这条重命名语句后面的 “数据类型” 不能省略,否则重命名失败。
    如果仅要修改数据类型还可以用
    ALTER TABLE 表名 MODIFY 列名 新数据类型;
  • 修改表中的某个值
    UPDATE 表名 SET 列1=值1,列2=值2 WHERE 条件;
  • 删除一行数据
    DELETE FROM WHERE 条件

MySQL第六章

本章学习内容。索引、视图、导入、导出、备份和恢复。

  • 对表中的某个列建立索引,有以下两种语句格式:
    ALERT TABLE 表的名字 ADD INDEX 索引名 (列名);
    或者
    CREATE INDEX 索引名字 ON 表名(列名);

  • 查看建立的索引
    SHOW INDEX FROM 表的名字

  • 视图
    视图是从一个或者多个表中导出的表,是一种虚拟存在的表。
    数据库中存放的视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中;
    CREATE VIEW 视图名称(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表的名字;

  • 导入
    LOAD DATA INFILE ‘文件路径和文件名’ INTO TABLE 表的名字;

  • 导出
    SELECT 列1,列2 INTO OUTFILE ‘文件路径’ FROM 表的名字;

  • 数据备份
    mysqldump -u root 数据名>文件名;备份整个数据库
    mysqldump -u root 数据库名 表名字> 备份文件名;

  • 用备份的文件恢复数据库
    source 文件;
    另一种恢复方式
    mysql -u root;
    CREATE DATABASE test;
    mysql -u root test < back.sql;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值