当前位置:首页 > 网站技术 > 后端技术 > 正文内容

PHP入门基础之MySQL基础

binadmin2020-07-11后端技术63

1、什么是数据库

相关术语:数据库系统(Database System):DBS{

    数据库(Database)

    数据管理系统(Database Management System DBMS)

    应用开发工具

    管理员及用户

}

SQY语言:结构化查询语言{

    DDL数据定义语言

    DML数据操作语言

    DQL数据查询语言

    DCL数据控制语言

2、MySQL的数据类型:

数值型:{

    整数型--

int.jpg

    浮点型--

float.jpg

}

字符串类型--

string.jpg

日期时间类型--

date.jpg


3、MySQL相关操作


MySQL命令行:

   mysql配置文件:my.ini

  在mysql安装目录-->MySQL5.7.26\bin 打开cmd,即可进行数据库操作

   登陆mysql:mysql -uroot p | mysql -uroot -proot

   退出:exit | quit | \q

   命令行结束符默认使用; | \g 来结束

   登陆同时打开指定数据库:mysql -uroot -p -D db_name

   查看相关手册:help | \h | ?加上相关关键字

   取消当前命令的执行:\c

sql 规范: 常用MySQL的关键字我们需要大写,库名、表名、字段名称使用小写

           sql语句支持折行操作,但不能拆开完整单词

           数据库名称、表名称、字段名称不要使用MySQL保留字,如果必须使用,需要反引号``括起来


常用sql语句:

    SELECT USER():得到登陆的用户

    SELECT VERSION():得到mysql的版本信息

    SELECT NOW():得到当前的日期时间

    SELECT DATABASE():得到当前打开的数据库


4、数据库相关操作

创建数据库 CREATE DATABASE|SCHEMA db_name;(名字要有意义但不能有特殊字符或者mysql关键字)
查看数据库 SHOW DATABASES |SCHEMA 
检测数据库名称是否存在,不存在则创建 : CREATE DATABASE [IF NOT EXISTS] db_name;
查看上一步警告信息:SHOW WARNINGS;
在创建数据库的同时指定编码方式:CREATE DATABASE [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET[=] 'charset';
查看指定数据库相关信息: SHOW CREATE DATABASE db_name;
修改指定数据库编码方式:ALTER DATABASE db_name [DEFAULT] CHARACTER SET [=] 'charset';
打开指定数据库:USE db_name;
删除数据库:DROP DATABASE [IF EXISTS] db_name;
得到当前打开的数据库:SELECT DATABASE()|SCHEMA();
mysql注释:# | -- 注释内容



5、数据表相关操作

数据表由行(row)和列(column)组成 


向表中插入一条记录 INSERT [INTO] table_name(id,username,...) VALUES(1,'KING',...);

查询表中所有记录 SELECT * FROM table_name;

查看当前数据库下已有数据表{

    SHOW TABLES;

    SHOW [FULL] TABLES[{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr];

}

查看指定数据表的详细信息:SHOW CREATE TABLE table_name;

查看表结构 :DESC table_name;

            DESCRIBE table_name;

            SHOW COLUMNS FROM table_name;

删除指定的数据表:DROP TABLE [IF EXISTS] table_name;

创建表:CREATE TABLE [IF NOT EXISTS] `table_name`(

    字段名称 字段类型 [完整性约束条件] [COMMENT '注释'],

    字段名称 字段类型 [完整性约束条件] [COMMENT '注释'],

    ...

)ENGINE=存储引擎 CHARSET=编码方式;

完整性约束条件:{

    unsigned:无符号,没有负数,从0开始

    zerofill:零填充,当数据的显示长度不够的时候可以使用前补0的效果填充至指定长度,字段会自动添加UNSIGNED

    NOT NULL:非空约束,也就是插入值的时候该字段必须给值,值不能为空

    DEFAULT:默认值,如果插入记录的时候没有给字段赋值,则使用默认值

    PRIMARY KEY:主键,标识记录的唯一性,值不能重复,一个表只能有一个主键,自动禁止为空。

    UNIQUE KEY:唯一性,一个表里可以有多个字段,同样的值不能重复,但是null值除外

    AUTO_INCREMENT:自动增长,只能用于数值列,而且配合索引所有(默认起始值从1开始,每次增长1) 

    FOREING KEY:外键约束   

}

测试完整性约束条件:

    整型:如果超出数据类型的范围,会产生截断现象,与字段要求的长度无关(-255-255)

    无符号:如果超出数据类型的范围,会产生截断现象,与字段要求的长度无关(0-255)  

    零填充:位数不够时前补0填充

    浮点型:  DECIMAL:有小数会进行四舍五入,但是保留的是整数。对精度比较高的选择float和double

    字符串类型:CHAR效率高于VARCHAR,CHAR相当于拿空间换时间,VARCHAR相当于拿时间换空间

    CHAR:默认存储数据的时候,后面会用空格填充到指定长度;而在检索的时候会去掉后面空格(定长使用该类型);

    VARCHAR:在保存的时候不进行填充,尾部的空格会留下(不定长的可以使用这个)。

    TEXT:不能有默认值,区分大小写

    ENUM枚举类型:自动过滤掉空格,枚举开始索引为1,不存在的则报错

    SET集合类型: 自动过滤掉空格,开始索引为1,

    TIME类型:HH:MM:SS [D HH:MM:SS] D表示天数 0~34 

    HHMMSS,也可以使用函数NOW(),CURRENT_TIME 

    DATE类型:YYYY-MM-DD ,YYYYMMDD,YY-MM-DD,YYMMDD

             70~99转换成1970~1999  00~69转换成2000~2069

    DATATIME类型:DATA+TIME的组合体

    TIMESTAMP类型:1、插入CURRENT_TIMESTAMP 2、插入NULL 3、什么也不写  都是得到当前系统日期和时间 

                 (自动带有时区,不同的地方是不同的时间)

    YEAR类型:1901~2155  1、插入数字0 结果是0000,2、插入字符串'0' 结果是2000

             70~99转换成1970~1999  00~69转换成2000~2069


--复合主键
CREATE TABLE table_name(
    id INT UNSIGNED,
    courseId INT UNSIGNED,
    username VARCHAR(20),
    email VARCHAR(50),
    PRIMARY KEY(id,courseId)
)
--测试自动增长  AUTO_INCREMENT
CREATE TABLE  table_name(
    id INT UNSIGNED KEY AUTO_INCREMENT,
    username VARCHAR(20)
)
--创建慕课网 imooc
CREATE DATABASE IF NOT EXISTS imooc DEFAULT CHARACTER SET 'UTF8';
--打开imooc
USE imooc;
--用户表 user
CREATE TABLE IF NOT EXISTS imooc_user(
id INT,
username VARCHAR(20),
password CHAR(32),
email VARCHAR(50),
age TINYINT(4),
card CHAR(18),
tel CHAR(11),
salary FLOAT(8,2),
married TINYINT(1),
addr VARCHAR(100),
sex ENUM('男','女','保密')
)ENGINE=INNODB CHARSET=UTF8;
--新增数据
INSERT imooc_user(id,username,password,email,age,card,tel,salary,married,addr,sex)
VALUES(1,'BIN','123456','12345678@QQ.COM','22','513019291832783287','17685405486','45500',0,'四川省',1);
--完整的用户表 imooc_user
CREATE TABLE IF NOT EXISTS `imooc_user`(
    `id` INT UNSIGNED AUTO_INCREMENT KEY COMMENT 'id',
    `username` VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名',
    `password` CHAR(32) NOT NULL COMMENT '密码',
    `email` VARCHAR(50) NOT NULL UNIQUE COMMENT '邮箱',
    `age` TINYINT UNSIGNED NOT NULL DEFAULT 18 COMMENT '年龄',
    `sex` ENUM('男','女','保密') NOT NULL DEFAULT '保密' COMMENT '性别',
    `tel` CHAR(11) NOT NULL UNIQUE COMMENT '电话',
    `addr` VARCHAR(50) NOT NULL DEFAULT '北京' COMMENT '地址',
    `card` CHAR(18) NOT NULL UNIQUE COMMENT '身份证号',
    `married` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0代表未结婚,1代表已结婚',
    `salary` FLOAT(8,2) NOT NULL DEFAULT 0 COMMENT '薪水'
)ENGINE=INNODB DEFAULT CHARSET=UTF8;


表结构相关操作

添加字段 :ALTER TABLE table_name

          ADD 字段名称 字段属性 [完整性约束条件][FIRST |AFTER 字段名称];

删除字段 :ALTER TABLE table_name

          DROP 字段名称;

        --测试添加或删除字段

        1.建表

CREATE TABLE IF NOT EXISTS table_name(
            id INT UNSIGNED AUTO_INCREMENT KEY 
        )

        2.添加字段

  ALTER TABLE table_name
        ADD username VARCHAR(20);

        3.删除字段

ALTER TABLE table_name
        DROP username;


        4.添加多个字段

ALTER TABLE table_name
        ADD age TINYINT UNSIGNED NOT NULL DEFAULT 18,
        ADD addr VARCHAR(50) NOT NULL DEFAULT '北京';


添加默认字段 :ALTER TABLE table_name

              ALTER 字段名称 SET DEFAULT 默认值;


删除默认字段 : ALTER TABLE table_name

              ALTER 字段名称 DROP DEFAULT;



修改字段类型、字段属性 : 

    ALTER TABLE table_name

    MODIFY 字段名称 字段类型 [字段属性] [FIRST | AFTER 字段名称]


修改字段名称、字段类型、字段属性 :

    ALTER TABLE table_name

    CHANGE 原字段名称 新字段名称 字段类型 字段属性 [FIRST | AFTER 字段名称]


添加主键 : ALTER TABLE table_name

           ADD PRIMARY KEY(字段名称)


删除主键 :ALTER TABLE table_name (如果有AUTO_INCREMENT去掉)

          DROP PRIMARY KEY;


添加唯一 :ALTER TABLE table_name

          ADD UNIQUE KEY |INDEX [index_name](字段名称);


删除唯一 :ALTER TABLE table_name

          DROP index_name;


修改数据表名称 : 

ALTER TABLE table_name RENAME [TO | AS] new_table_name;

RENAME TABLE table_name TO new_table_name;





标签: mysqlphp
分享给朋友:

相关文章

PHPCMS完成手机端搭建全教程(新手看完即会)

PHPCMS完成手机端搭建全教程(新手看完即会)

注:这篇文章是在我做完一个自适应和一个响应式网站后写的。所以我建议,如果可以的话,最好用@media css做响应式网站,这样就不用考虑手机端的各种问题。因为我当初做的就是自适应,但是没有想到后面的坑...

PHP入门之Linux基础和shell命令行

PHP入门之Linux基础和shell命令行

centos 一般支持10年nubuntu lts 一般支持5年一、linux系统环境搭建wmware 虚拟机下载centos  DVD ISO 或者EVerythine ISO 镜像&nb...

 PHP入门基础之会话控制基础和实战

PHP入门基础之会话控制基础和实战

1、会话控制基础会话是具有逻辑关联的多个简单交互的集合简单交互模型逻辑关联http是无状态协议每个请求都是单独处理的,协议无法识别当前用户。有状态vs无状态  (跟朋友吃饭【不用二次介绍】...

 PHP入门基础之面向对象语法

PHP入门基础之面向对象语法

1、面向对象对象 -->归纳,终结(抽象) -->类类  --> 具体化实现(实例化)  -->对象面向过程:把所有事物看作一整个运行过程面向对象:把所有事...

PHP入门基础之知识汇总

PHP入门基础之知识汇总

PHP官网:https://www.php.net/1、php基础语法:标准风格 <? php 代码段; ?>如果文档中只有PHP代码,结果标记要省略(规范?)短风格 <?代码段;...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

分享:

支付宝

微信