数据库概念
数据库就是存放数据的仓库,他是一个按照数据结构来存储和管理数据的计算机软件系统。
MySQL数据库是一种C/S模型(即客户端和服务器模型),客户端通过用户名,密码登录连接服务器,连接成功后,才可以进行数据库操作(增删改查等)
RDBMS:关系数据库管理系统(relational data base management system)
SQL :结构化查询语言
数据库分类
关系型数据库
关系模型就是指二维表格,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
关系型数据库的核心元素:
数据行(一条记录),数据列(字段),数据表(数据行的集合),数据库(数据表的集合)
关系型数据库的产品
Oracle , MySQL(免费), sqlite,
DB2,Microsoft SQL server
非关系型数据库
不是以数据表的形式记录数据的数据库,主要产品有 memcache, redis , mongodb ,hbase
mysql 的安装和设置
这里介绍Ubuntu上的MySQL安装。不同发行版本安装方式可能有所不同。
安装MySQL
安装操作要在管理员身份下运行:
执行apt install mysql-server 安装。
由于我之前已经安装过了,所以这里不会有相应的信息,对于没有安装过得猿(媛),只要按照提示确定就好了。
初始化配置
初始化配置使用命令: mysql_secure_installation
- 1 设置数据库不进行密码强校验(输入N表示不设置密码强校验)
1.2设置root管理员密码,这里要区别于我们的系统管理员密码,这个密码是数据库管理员的。密码输入不会回显,根据提示输入两遍
1.3设置是否要删除匿名用户,这里不删除
1.4设置是否允许root用户远程登录,这里设置允许
1.5设置是否删除test库,这里选择不删除
1.6设置修改的权限立即生效,此时需哦有配置初始化完成
数据库服务启动停止
检查服务器状态命令:
service mysql status
systemctl status mysql.service
重启|停止|启动,数据库命令(数据库的启停命令要在管理员模式下执行)
重启: //etc/init.d/mysql restart
停止: //etc/init.d/mysql stop
启动: //etc/init.d/mysql start
或者执行以下命令
service mysql restart //重启
service mysql stop //停止
service mysql start //启动
连接数据库
== mysql -uroot -p==
‘’此命令也需要在管理员模式下执行’’
退出执行== mysql> quit==
配置文件位置
配置文件在==/etc/mysql/mysql.conf.d/mysqld.conf==
需要修改的话要在配置文件中修改
安装C/C++开发库
apt install libmysqlclient-dev
数据库的基本操作
数据库的登录及退出
连接数据库:
mysql -u用户名 -h主机地址(省略代表本机) -p密码
mysql -uroot -p
退出数据库
exit
quit
ctil+d
查看所有数据库
//注意所有的SQL命令结尾都要跟上“;”号
show databases;
显示数据库版本信息
select version();
显示时间
select now();
创建数据库
create database 数据库名
create database 数据库名 charset=utf8;
查看创建数据库的语句
show create database 数据库名
又上可以得出,查看建表的命令语句也可以用这个
查看当前使用的数据库
==select database();==null代表没有选择使用的数据库
查看当前用户
select user();
使用某个数据库
use 数据库名;
删除数据库
==drop database 数据库名; ==
数据表的操作
查看数据库中的所有表
创建表
数值类型:
字符串类型:
日期类型:
创建表的命令:
==create table 数据表的名字(字段 类型 约束,字段,类型,约束); ==
未使用约束实例:
create table student(id int,name varchar(30));
对id字段使用约束实例:
create table stucent(id int primary key not null auto_increment,name varchar(30));
执行以上事例,创建student1,student2 表。
约束
主键: primary key:物理上存储的顺序
非空: not null:此字段不允许填写空值
唯一:unique:此字段的值不允许重复
默认:default:当不填写此值时会使用默认值,如果填写,以填写为准
外键:foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则写成功,如果不存在则写失败。虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增加,修改,删除,查询时),都会降低数据库的性能。
自动增长:auto_increment:表示自动增长
查看表结构
desc 表名;
查看创建表的命令
show create table 表名;
向表中插入,更新,删除数据
insert into 表名 value(字段1的值,字段2的值…)
使用select * from 表名命令查看当前数据表的信息,在使用update 表名 set 字段=“新值” where id=‘要更改的字段主键’来更新表中的信息
使用delete删除表中的行,可以删除指定行,也可以删除所有行
查看表中数据
select * from 表名
也可以指定查询某几个字段:select id,name from student;
mysql中的注释使用‘–’
修改表的名字
==alter table 原表名 rename 新表名 ==
修改字段信息
添加字段alter table 表名 add 列名 类型;
重新命名alter table 表名 change 原字段名 新字段名 类型及约束;
不改名字alter table 表名 modify 列名 类型及约束;
删除字段alter table 表名 drop 列名;
修改表的储存引擎:alter table表名engine myisam
常用引擎myisam,innoDb
删除表
drop table 表名;
mysql查询操作
基本查询
查询所有字段
select * from 表名;
查询指定字段:
select 列1,列2,… from 表名;
select 表名.字段 … from 表名;
使用as给字段取别名:
select 字段 as 名字 … from 表名;
消除重复行:
select distinct addr from 表名;
条件
%替换一个或多个,_替换一个