信息呢就是数据
数据包括哪些:图片、视频 音频 文字 数字
网站:购物 游戏 论坛
/|\ 存在数据库里 LNMP LAMP PHP
数据库服务软件:(RDBMS关系型):Oracle SQL SERVER(微软,不可跨平台) , MySQL DB2
(非关系型NoSQL):mencached Redis MogoDB
软件从哪下:管网 系统安装光盘rhel7.4(2015)
开源软件(不等于免费) 商业软件 跨平台(Linux unix windows)
使用哪种软件建数据库好呢:MySQL -->php python java
概述
DB数据库:某种数据模型进行组织并存到存储器的数据集合 DBMS数据库管理系统:用来操纵和管理数据库的大型服务软件 DBS数据库系统:DB+DBMS,带有数据库并整合了数据库管理软件的计算机系统 |
特点
关系型数据库系统
支持Linux/Unix,WINDS等多种操作系统
使用C和C++编写,可移植性强
通过API支持Python/java/Perl/PHP等语言
典型应用环境
LAMP平台,与Apache HTTP Server组合
LNMP平台,与Nginx组合
官网下载:https://dev.mysql.com/downloads/mysql/
常见SQL操作指令
- DDL数据定义语言(create ,alter ,drop)
- DML数据操作语言(insert , update , delete)
- DCL数据控制语言(grant , revoke)
- DTL数据事物语言(commit, rollback , savepoint)
mysql(2下tab键会出现相关命令)
/varlib/mysql(不启服务为空)
首次启动(初始化)
1.先安装MySQL
2.启服务
3.初始密码在grep -i password /var/log/mysqld.log
mysql -hlocalhost[服务器] -uroot[用户] -p123456[密码]
alter user user() identified by "密码";先改初始密码才能操作
show variables like "%password%"; 查看密码策略
+------------------------------------------------------+-------+
| Variable_name | Value |
+-------------------------------------------------------+-------+
| default_password_lifetime | 0 |
| disconnect_on_expired_password | ON |
| log_builtin_as_identified_by_password | OFF |
| mysql_native_password_proxy_users | OFF |
| old_passwords | 0 |
| report_password | |
| sha256_password_proxy_users | OFF |
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 6 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+-------------------------------------------------------+-------+
14 rows in set (0.00 sec)
[root@host50 ~]# locale
LANG=zh_CN.UTF-8 支持中文
- 修改密码策略
> set global validate_password_policy=0;
#验证密码策略(0长度,1长度/数字/大写/小写/和特殊字,2长度/数字/大写/小写/和特殊字/字典文件)
> set global validate_password_length=6;(临时)密码长度
]# vim /etc/my.cnf(永久修改)
[mysqld] validate_password_policy=0 #密码验证策略 validate_password_length=6 #密码长度 character_set_server=utf8 #中文字符集 |
]# systemctl restart mysqld
mysql> show variables like "%character%";
-----------------------------------------------------------------------
- 管理命令
desc 表名; #查看表结构
select * from 表名; #查看表记录
drop table 表名; #删除表
insert into 表名 values(值列表); #插入表记录
update 表名 set 字段=值; #修改表记录
delete from 表名; #删除表记录
mysql> show databases;
操作指令不区分大小写(库名/表名、密码、变量值等除外)。
每条SQL指令以 ; 结束或分隔。
不支持 Tab 键自动补齐。
\c 可废弃当前编写错的操作指令。
select database(); #查看当前所在库
create database nsd_1902; #建库
use nsd_1902; #进库
create table nsd_1902.student(name char(10) , homeadd char(20)); #建表
show tables; #查看当前库的所有表
desc student; #查看表结构,表格形式展现
desc student\G #查看表结构,以列形式展现
drop table nsd_1902.student; #删表
delete from nsd_1902.student; #删表记录
mysql> create table mysql.t1(
学号 char(10) not null,
姓名 varcahr(5) not null,
性别 enum("男","女") not null,
手机号 cahr(11) default "",
通信地址 varchar(64),
primary kry(学号) #主键
) default charset=utf8; #手工指定字符集,采用utf8
mysql> show create table mysql.student;
mysql>insert into mysql.t1 values
->(1902,"Tom","男",12345678901,"深圳龙岗区"),
->(1903,"Kenji","男",12345678901,"深圳龙岗区");
插入两条记录
mysql>update mysql.t1 set 通信地址="中国";
mysql>select * from mysql.t1;
select user(); #显示当前登陆用户
-------------------------------------------------------------------------------------------------------------
select * from 表名;
nsert into 表名 values(值列表);
update 表名 set 字段=值;
delete from 表名;
数据类型
1)数值:
- tinyint(微小整数255)
- smallint(小整数)
- mediumint(中整数)
- int(大整数)
- bigint(极大整数)
- float(单精度浮点)
- double(双精度浮点)
- decimal(对decimal(M,D),其中M为有效位数,D为小位数,M应大于D,占用M+2字节)
- unsigned(使用无符号存储范围)
2)字符:定长:char(字符数)最多255字符
变长varchar(字符数)超出字符数时无法写入
3)日期时间:datetime(1000~9999年)timestamp(1970~2038)date(20190101)
year(2019)[01~59(2001~2069)70~99(1970~1999)] time(235959)
时间函数:
now() 当前系统日期时间
year() 获取指定年份
day() 获取指定日期
sleep(N) 休眠N秒
curdate() 当前系统日期
curtime() 当前系统时刻
month() 获取指定月份
date() 获取指定日期
time() 获取指定时刻
可配now()使用,例date(now());
使用select 输出函数结果:select date(20190506)或select date(now());
4)枚举类型
enum(值1,值2,值N) #从给定值集合选择单个值
set(值1,值2,值N) #从给定值集合中选择一个或多个值
mysql>create table t2(
->name varchar(4),
->gender enum("boy","girl"),
->likes set("book","film","music")
->);