####################################################################################
什么是数据库:DB,DataBase--》数据库 :依照某种数据模型进行组织并存放到存储器的数据集合。DBMS,DataBase Management System--》数据库管理系统:用来操纵和管理数据库的大型服务软件。DBS,DataBase System--》数据库管理系统:即DB+DBMS,指带有数据库并整合了数据库管理软件的计算机系统。常见的数据库软件?关系型数据库软件服务软件(RDBMS):Oracle(甲骨文):Oracle(商业软件),MysqlMicrosoft(微软):SQL Server(商业软件)IBM:DB2(商业软件)非关系型数据库服务软件(NoSQL):(key-values键值对类型)redis mongodbmysql的特点:--》适用于中小规模,关系型数据库--》跨平台--》通过API支持Python/Java/Perl/PHP等语言应用环境:LAMP LNMP#####################################################################################################一、搭建数据库服务器:装包:Mysqlrpm -qa | grep -i mysql修改配置文件:#ls /etc/my.cnf //主配置文件#ls /var/lib/mysqld //数据库的存储目录#cat /var/log/mysqld.log //日至文件启动服务:#systemctl start mysqld查看服务运行状态:#netstat -lnpt | grep :3306 //端口号:3306#ps -C mysqld#systemctl status mysqld使用初始密码登陆数据库:#grep password /var/log/mysqld.log#mysql -hlocalhost -uroot -p密码 //初始密码中如果含有特殊字符应该使用单引二、进入数据库之后修改登陆密码:#show databases; //提示需要修改密码才能使用#alter user root@localhost identified by123456; //提示密码不符合安全性要求#set global validate_password_policy=0; //设置只验证长度#set global validate_password_length=6; //设置长度默认值为8个字符#alter user root@localhost identified by123456 //设置成功#quit //退出验证:#mysql -hlocalhost -uroot -p123456 //登陆成功。永久设置密码验证策略:#vim /etc/my.cnf[mysql]validate_password_policy=0validate_password_length=6#####################################################################################三、sql命令的使用规则:--》命令不区分大小写(变量,密码除外)--》每条命令以分号结尾--》不支持Tab补齐--》\c可废弃当前编辑错的操作命令四、数据库基本管理:库管理:#mysql -uroot -p123456#show databases; //查看已有库#create database 库名; //创建库#drop database 库名; //删除库#use 库名; //使用库#select database(); //查看当前所在库#show tables; //查看当前库里已有的表建表:create table 库名.表名(字段名 类型(宽度) 约束条件,字段名 类型(宽度) 约束条件,...);create table gamedb.stuinfo(name char(10),age int);查看表结构:desc 库名.表名;插入表记录:insert into 库名.表名 values(值列表);insert into gamedb.stuinfo values(“dcc”,23);查看表记录:select * from 库名.表名;删除表记录:delete from 库名.表名; //删除所有表中记录,但表还在删除表:drop 库名.表名;
#####################################################################################################五、mysql数据类型支持的数据类型有哪些?数值类型 字符类型 日期时间类型 枚举型1、数值类型:整型,浮点型根据存储数值的范围整型类型分为:tinyint 1字节 -128~127(有符号) 0~255(无符号) smallint 2字节 -32768-32767 0~65535mediumint 3字节int 4字节bigint 8字节//规律:无符号范围为2的n次方-1,n表示位,1字节为8位根据存储数值的范围浮点型分为:单精度float(n,m) 4字节双精度float(n,m) 8字节//其中n代表总位数//m代表小数位的位数create table t1(pay float(5,2));inserte into t1 values(199.99); //总位数为5位,小数点后2位注意:使用unsigned,表示使用无符号数输入整数时,会自动补全小数位宽度仅是显示宽度,存数值的大小由类型决定数值超出范围,报错¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥2、字符类型:定长:char(字符数)--》最大长度255--》不够指定的字符数在右边用空格补齐--》字符数超出设定,无法写入变长:varchar(字符数)--》按照实际大小分配存储空间--》字符数超出设定,无法写入大文本类型:text/blob--》字符数大于65535存储时使用¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥3、日期时间类型: 年 year YYYY 2017 日期 date YYYYMMDD 20171220 时间 time HHMMSS 155145 日期时间 datetime YYYYMMDDHHMMSS timestamp YYYYMMDDHHMMSS datetime与timestamp区别?当未给timestamp字段赋值时,自动以当前系统时间赋值当未给datetime字段赋值时,默认赋值为null 使用2位数字给year字段赋值的规律?01~69为2000~206970~99为1970~1999 使用时间函数给日期时间类型的字段赋值。 now():当前时间 year():当前时间的年份 month():当前时间的月份 day():当前时间的天 date():当前时间的年月日 time():当前时间的时分秒¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥4、枚举类型:enum:从给定值集合中取单个值 格式:enum(值1,值2,值N)set:从给定值集合中取一个或多个值 格式:set(值1,值2,值N)#########################################################################################六、约束条件:null: 允许为空,默认设置not null: 不允许位空key: 索引类型default: 设置默认值,缺省为null create table t3(name char(10) not null, //字段名为name,类型为字符类型,宽度为10,设置不能为空age tinyint unsigned default 23 //字段名为age,类型为微小整数,无符号(不能为负),默认值为23);desc t3; //查看表结构insert into t3(name) values(“dcc”); //插入,仅给name字段赋值select * from t3; //结果,age字段会取默认值23####################################################################################七:修改表结构:alter table 表名 执行动作;1、添加新字段:add 字段 类型(宽度);add 字段 类型( 宽度) 约束条件; add 字段 类型( 宽度) 约束条件 first; //插入到第一列 add 字段 类型( 宽度) 约束条件 after 字段名; //插入到指定字段后2、删除字段:drop 字段名;3、修改字段类型:modify 字段 类型(宽度) 约束条件;4、修改字段名:change 原字段 新字段 类型(宽度) 约束条件; //修改时,保持原始的类型(宽度) 约束条件。修改表名:alter table 原表名 rename 新表名;################################################################################################