1.安装配置

2.启动mysql服务并配置

    mysql> \s(status也行)查看当前服务器状态查看编码状态Server characterset : utf8Db characterset: utf8Client characterset: gbkConn. characterset: gbk修改:---进入配置文件my.ini
        客户端:[mysql]default-character-set=utf8服务端:[mysqld]character-set-server=utf8

查看状态和修改配置

3.登陆/退出MySql

    登陆:常用参数:-u, --username=name用户名(注:5.5版本去掉了--username写法)-p, 密码-h, --host服务器名称-P, --port端口号-D, --database, 打开指定数据库--prompt=name, 设置命令提示符--delimiter=name, 指定分隔符-V,--version,输出版本信息并且退出
        案例:a)mysql -rroot -pb)mysql -h127.0.0.1 -uroot -pc)mysql -h127.0.0.1 -uroot -p --prompt=abc (只对当前连接有效)d)mysql -uroot -proot -V

登陆

    退出:exitquit\qCtrl + c

退出

4.Mysql常用命令:

    显示当前版本 SELECT VERSION();显示当前日期时间 SELECT NOW();显示当前用户 SELECT USER();修改分隔符 DELIMITER \开启输出日志 \T +路径结束输出日志 \t

运维常用命令

    MYSQL语句规范:1.关键字与函数名称全部大写2.数据库名称,表名称,字段名称等全部小写3.SQL语句必须以分隔符结尾4.SQL语句支持折行操作,只要不把单词,标记或引号字符分割为两部分,可以在下一行继续写5.数据库名称,表名称,字段名称等尽量不要使用MySQL的保留字,如果需要使用的时候需要使用反引号('')将名称括起来

5.数据库操作:

    a)创建数据库:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [[DEFAULT] CHARACTER SET [=] CHARSET_NAME]CREATE DATABASE test CHARACTER SET=UTF8b)查看当前服务器下的数据列表: SHOW {DATABASES | SCHEMA}得到当前打开的数据库名称 : SELECT DATABASE();c)查看上一步操作产生的警告信息: SHOW WARNINGS;d)删除指定数据库 DROP {DATABASE|SCHEMA} [IF EXISTS] db_name   案例:DROP DATABASE db_aaa1SHOW DATABASESe)查看指定数据库的定义 : SHOW CREATE {DATAASE|SCHEMA} db_namef)修改指定数据库的编码方式:ALTER {DATABASE|SCHEMA} db_name [DEFAULT]     CHARACTER SET[=] charset_nameg)打开指定数据库: USE db_name

创建等语句

6.Mysql中的数据类型  --具体常用的可以参考

    整数类型  --int  --TINYINT(1),0为false,其余为true浮点类型  --FLOAT 4字节字符串类型--CHAR(M)  M 个字节,0<=M<=255  | VARCHAR(m) 0<=M<=65535 L+1个字节  | ENUM('value1','value2'..)1或两个字节,取决于枚举值的个数最多65535个值日期时间类型 time date datetime  year TIMESTAEP二进制类型 视频格式,图片路径啊等

bit[(M)]二进制位(101001),m表示二进制位的长度(1-64),默认m=1tinyint[(m)] [unsigned] [zerofill]小整数,数据类型用于保存一些范围的整数数值范围:有符号:-128 ~ 127.无符号:0 ~ 255特别的: MySQL中无布尔值,使用tinyint(1)构造。int[(m)][unsigned][zerofill]整数,数据类型用于保存一些范围的整数数值范围:有符号:-2147483648 ~ 2147483647无符号:0 ~ 4294967295特别的:整数类型中的m仅用于显示,对存储范围无限制。例如: int(5),当插入数据2时,select 时数据显示为: 00002bigint[(m)][unsigned][zerofill]大整数,数据类型用于保存一些范围的整数数值范围:有符号:-9223372036854775808 ~ 9223372036854775807无符号:0  ~  18446744073709551615decimal[(m[,d])] [unsigned] [zerofill]准确的小数值,m是数字总个数(负号不算),d是小数点后个数。 m最大值为65,d最大值为30。特别的:对于精确数值计算时需要用此类型decaimal能够存储精确值的原因在于其内部按照字符串存储。FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]单精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。无符号:-3.402823466E+38 to -1.175494351E-38,01.175494351E-38 to 3.402823466E+38有符号:01.175494351E-38 to 3.402823466E+38**** 数值越大,越不准确 ****DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。无符号:-1.7976931348623157E+308 to -2.2250738585072014E-30802.2250738585072014E-308 to 1.7976931348623157E+308有符号:02.2250738585072014E-308 to 1.7976931348623157E+308**** 数值越大,越不准确 ****char (m)char数据类型用于表示固定长度的字符串,可以包含最多达255个字符。其中m代表字符串的长度。PS: 即使数据小于m长度,也会占用m长度varchar(m)varchars数据类型用于变长的字符串,可以包含最多达255个字符。其中m代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。注:虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡texttext数据类型用于保存变长的大字符串,可以组多到65535 (2**16 − 1)个字符。mediumtextA TEXT column with a maximum length of 16,777,215 (2**24 − 1) characters.longtextA TEXT column with a maximum length of 4,294,967,295 or 4GB (2**32 − 1) characters.enum枚举类型,An ENUM column can have a maximum of 65,535 distinct elements. (The practical limit is less than 3000.)示例:CREATE TABLE shirts (name VARCHAR(40),size ENUM('x-small', 'small', 'medium', 'large', 'x-large'));INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small');set集合类型A SET column can have a maximum of 64 distinct members.示例:CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');DATEYYYY-MM-DD(1000-01-01/9999-12-31)TIMEHH:MM:SS('-838:59:59'/'838:59:59')YEARYYYY(1901/2155)DATETIMEYYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59    Y)TIMESTAMPYYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

完整版数据类型

7.(一)数据库表相关操作

a.什么是表?

1         数据表是数据库最重要的组成部分之一,是其他对象的基础
2         数据表是存储数据的数据结构
3         数据表示包含了特定实体类别的数据
4         数据表由行(row)和列(column)构成的二维网络
5         数据表一定现有表结构,再有数据
6         数据表至少有一列,可以没有行或者多行
7         数据表名称要求唯一,而且不要包含特殊字符

b.如何创建数据表?

1         CREATE TABLE [IF NOT EXISTS] tbl_name(字段名称 字段类型 [完整性约束条件]。。。)ENGINE=引擎名称 CHARSET='编码方式';
2         完整性约束条件:
3                         1.PRIMARY KEY主键v--唯一的字段,且不能重复
4                         2.AUTO_INCREMENT自增长
5                         3.FOREIGN KEY 外键
6                         4.NOT NULL 非空
7                         5.UNIQUE KEY 唯一
8                         6.DEFAULT默认值

c.如何查看数据库中的数据表以及表结构?

1 查看数据库下的数据表: SHOW TABLES
2 查看指定表的表结构:
3 DESC tbl_name
4 DESCRIBE tbl_name
5 SHOW COLUMNS FROM tbl_name

d.创建表

案例一:创建新闻分类cms_cate 编号,分类名称,分类描述

后加:注意一个地方:create table ....(id int,caption chr注意这里写完就没有逗号了)。。。;否则报错,大爷的找了一晚上。

1 CREATE TABLE IF NOT EXISTS cms_cate(
2 id TINYINT,
3 cateName VARCHAR(50),
4 cateDesc VARCHAR(200),
5 )ENGINE=MyISAM CHARSET=UTF8;

代码

案例二:
创建新闻表cms_news
编号,新闻标题,新闻内容,新闻发布时间,点击量,是否置顶,新闻所属分类,发布人

1 CREATE TABLE Persons
2 (
3 Id_P int NOT NULL,
4 LastName varchar(255) NOT NULL,
5 FirstName varchar(255),
6 Address varchar(255),
7 City varchar(255),
8 UNIQUE (Id_P)
9 );

代码一

1 CREATE TABLE IF NOT EXISTS cms_testnews(
2 id INT PRIMARY KEY,
3 title VARCHAR(50)  unique not null,
4 content TEXT  not null,
5 pubTime INT unique not null,
6 isTop TINYINT(1) COMMENT '0代表不置顶,1代表置顶'
7 ) ENGINE=InnoDB CHARSET=UTF8;

代码二

7.(二)MySQL 存储引擎

a.什么是存储引擎?

1         存储引擎就是指表的类型。数据库的存储类型决定了表在计算机中的存储方式。用户可以根据不同的存储方式、是否
2         进行事务处理等来选择合适的存储引擎

b.如何查看MySQL的存储引擎?

1         查看MySQL支持的存储引擎:       SHOW ENGINES \G;
2                         Engine:存储引擎
3                         Support:是否支持这种存储引擎
4                         Comment:引擎特点
5                         Transactions:是否支持事务处理
6                         XA:是否是分布式的交易处理
7                         Savepoints:是否支持保存点
8         查看显示支持的存储引擎信息:    SHOW VARIABLES LIKE 'have%'
9         查看默认的存储引擎:            SHOW VARIABLES LIKE 'storage_engine'

c.MySQL常用存储引擎及特点:

1                             InnoDB存储引擎  --5.1版本之后
2                                             事务修改:---进入配置文件my,回滚,修复,分布式,多版本并发控制的事物安全
3
4                             MyISAM存储引擎  --5.1版本之前
5                                             frm --存储表结构
6                                             myd     --存储数据
7                                             myi --存储索引
8                             MEMORY存储引擎
9                                             数据存储在内存,安全性低,速度快,生命周期短

d.如何选择合适的存储引擎?

      ---建议根据需求来选择存储引擎

完整性约束条件:

1、给字段选择合适的类型
PRI代表主键 不能为空, 一个表中只能有一个主键

查看创建表的定义
SHOW CREATE TABLE user1;

2、AUTO_INCREMENT自增长
被标志成自增长的一定是主键,主键不一定是自增长的

CREATE TABLE IF NOT EXISTS user5(
id SMALLINT KEY AUTO_INCREMENT,
username VARCHAR(20));  --)AUTO_INCREMENT=100;指定起始值increment(自增长)

INSERT user5 VALUES(1,'KING');

  由于是自增长,可以换种写法

INSERT user5(username) VALUES('QUEN');

 

3、NOT NULL非空 --经常配合默认值使用

无符号的UNSIGEND(unsigned)
CREATE TABLE IF NOT EXISTS user7(
id INT UNSIGNED KEY AUTO_INCREMENT, 意思id是无符号的自增长的键
username VARCHAR(20) NOT NULL,
password CHAR(32) NOT NULL,
age TINYINT UNSIGNED);INSERT user7(username, passwprd) VALUES('KING', 'KING');
INSERT user7(username, passwprd, age) VALUES('KING', 'KING', 12);
INSERT user7(username, passwprd) VALUES(NULL, 'KING');

实例

4.DEFAULT默认值

CREATE TABLE IF NOT EXISTS user7(
id INT UNSIGNED KEY AUTO_INCREMENT, 意思id是无符号的自增长的键
username VARCHAR(20) NOT NULL,
password CHAR(32) NOT NULL,
age TINYINT UNSIGNED DEFAULT 18);

案例

5.UNIQUE KEY 唯一(一个表中只能有一个主键,但可以有多个唯一)

CREATE TABLE IF NOT EXISTS user9(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
card CHAR(18) UNIQUE)DESC user9 ;

案例

6.外键(后面讲-配合多表查询)

外键,一个特殊的索引,只能是指定内容

可以理解为如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的。

            creat table color(nid int not null primary key,name char(16) not null)create table fruit(nid int not null primary key,smt char(32) null ,color_id int not null,constraint fk_cc foreign key (color_id) references color(nid))

案例

如何操作表结构

修改表名:ALTER TABLE tbl_name RENAME [TO|AS] NEW_NAMERENAME TABLE tbl_name TO new_name添加字段:ALTER TABLE tbl_name ADD 字段名称 字段类型【完整性约束条件】[FIRST|AFTER字段名称]
删除字段:ALTER TABLE tbl_name DROP 字段名称
修改字段属性:ALTER TABLE tbl_name MODIFY 字段名称 字段类型【完整性约束条件】【FIRST|AFTER 字段名称】
修改字段名称:ALTER TABLE tbl_name CHANGE 旧字段名称 新字段名称字段类型[完整性约束条件]【FIRST|AFTER字段名称】
添加默认值:ALTER TABLE tbl_name ALTER 字段名称SET DEFAULT默认值
删除默认值:ALTER TABLE tbl_name ALTER 字段名称 DFOP DEFAULT
添加主键:ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY[index_type] (字段名称,...)
删除主键:ALTER TABLE tbl_name DROP PRIMARY KEY
添加唯一:ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] UNIQUE [INDEX|KEY] [索引名称](字段名称,..)
删除唯一:ALTER TABLE tbl_name DROP {INDEX|KEY} index_name
修改表的存储引擎:ALTER TABLE tbl_name ENGING=存储引擎名称
设置自增长的值:ALTER TABLE tbl_name AUTO_INCREMENT=值5.如何删除数据表
DROP TABLE[IF EXISTS] tbl_name[,tbl_name....]

CREATE TABLE IF NOT EXISTS user10(
id SMALLINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
password CHAR(32) NOT NULL,
email VARCHAR(50) NOT NULL DEFAULT '12344@qq.com',);

添加字段

以user10为例
添加card字段CHAR(18);
ALTER TABLE user10 ADD card CHAR(18);
查看表结构:DESC user10;
完整性约束条件:
ALTER TABLE user10 ADD test VARCHAR(100) NOT NULL UNIQUE;
ALTER TABLE user10 ADD test1 VARCHAR(100) NOT NULL FIRST;
ALTER TABLE user10 ADD test2 VARCHAR(100) NOT NULL DEFAULT 100 AFTER username;
选中一次表,完成多个操作
ALTER GTABLE user10
ADD test4 INT NOT NULL DEFAULT 123 AFTER password,
ADD test5 FLOAT(6,2) FIRST,
ADD test6 SET('A','B','C');
查看表结构:DESC user10;

案例

删除email字段

ALTER TABLE user10 DROP test6;
ALTER TABLE user10 DROP test1;DESC user10;一次删除多个字段
ALTER TABLE user10
DROP test2,
DROP test3,
....;

案例

添加test字段删除addr字段

ALTER TABLE user10
ADD test  INT UNSIGNED NOT NULL DEFAULT 10 AFTER sex,
DROP addr;

案例

修改字段属性

ALTER TABLE uer10 MODIFY email VARCHAR(200);--修改的是所有属性,没写的会变回默认
所以建议在改之前要先DESC tbl_name;查看一下表结构

添加默认值

CREATE TABEL IF NOT EXISTS test12(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
age TINYINT UNSIGNED);

添加默认值:
ALTER TABLE user11 ALTER age SET DEFAULT 18;
DESC user11;
ALTER TABLE user11 ALTER age DROP DEFAULT;
ALTER TABLE user11 ALTER username DROP DEFAULT;

案例

如何添加主键

CREATE TABLE IF NOT EXISTS test12(
id INT);
ALTER TABLE test12 ADD PRIMARY KEY(id);

案例

CREATE TABLE IF NOT EXISTS test13(
id INT,
card CHAR(18),
username VARCHAR(20) NOT NULL);
ALTER TABLE test13 ADD PRIMARY KEY(id, card);

案例

删除test12表的主键

ALTER TABLE test12 DROP PRIMARY KEY;
在添加回来
ALTER TABLE test12 ADD CONSTRAINT symbol PRIMARY KEY index_type(id);

案例

----注意:

带有主键的自增长---删除
CREATE TABLE IF NOT EXISTS test14(
id INT UNSIGNED KEY AUTO_INCREMENT);ALTER TABLE test14 DROP PRIMARY KEY; ---会报错;所以先删除自增长
所以:
ALTER TABLE test14 MODIFY id INT UNSIGNED;利用MODIFY关键字去掉了特殊属性;(就是利用修改属性,没修改的变成默认值)
ALTER TABLE test14 DROP PRIMARY KEY;

修改表的存储引擎
修改表的存储引擎为MyISAM;

ALTER TABLE user12 ENGINE=MyISAM;
修改自增长的值
ALTER TABLE user12 AUTO_INCREMENT=100;

删除数据表

DROP TABLE[IF EXISTS] tbl_name[, tbl_name...]DROP TABLE IF EXISTS user12;
SHOW WARNINGS;  查看警告
DROP TABLE IF EXISTS user1,user2,user3;

View Code

清空自增id

我们的数据库表中经常会使用id自增,但是每次清空表后id并不是从1开始计数,总是接着之前的进行自增,那么解决呢?

使用mysql的truncate命令,用法:truncate table 表名;

MySQL使用详解--根据个人学习总结相关推荐

  1. mysql 实例复制_MYSQL教程MySQL 复制详解及简单实例

    <MysqL教程MysqL 复制详解及简单实例>要点: 本文介绍了MysqL教程MysqL 复制详解及简单实例,希望对您有用.如果有疑问,可以联系我们. MysqL 复制详解及简单实例 主 ...

  2. 史上最简单MySQL教程详解(进阶篇)之索引及失效场合总结

    史上最简单MySQL教程详解(进阶篇)之索引及其失效场合总结 什么是索引及其作用 索引的种类 各存储引擎对于索引的支持 简单介绍索引的实现 索引的设置与分析 普通索引 唯一索引(Unique Inde ...

  3. oracle通过dblink连接mysql配置详解(全Windows下)

    oracle通过dblink连接mysql配置详解(全Windows下) 关于oracle通过dblink连接mysql,经过了两周的空闲时间研究学习,终于配置好了,真是不容易啊,仔细想想的话,其实也 ...

  4. MySQL数据库,从入门到精通:第十四篇——MySQL视图详解

    MySQL数据库,从入门到精通:第十四篇--MySQL视图详解 第 14 篇_视图 1. 常见的数据库对象 2. 视图概述 2. 1 为什么使用视图? 2. 2 视图的理解 3. 创建视图 3. 1 ...

  5. MySQL数据库,从入门到精通:第十二篇——MySQL数据类型详解

    MySQL数据库,从入门到精通:第十二篇--MySQL数据类型详解 第 12 章_MySQL数据类型精讲 1. MySQL中的数据类型 2. 整数类型 2. 1 类型介绍 2. 2 可选属性 2. 2 ...

  6. pandas读写MySQL数据库详解及实战

    pandas读写MySQL数据库详解及实战 SQLAlchemy是Python中最有名的ORM工具. 关于ORM: 全称Object Relational Mapping(对象关系映射). 特点是操纵 ...

  7. Mysql Explain 详解

    Mysql Explain 详解 一.语法 explain < table_name > 例如: explain select * from t3 where id=3952602; 二. ...

  8. MySQL存储过程详解 mysql 存储过程

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  9. mysql存储过程详解[转]

    mysql存储过程详解[转] 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功 ...

最新文章

  1. python制作词云时出现figure1 figure2_用Python生成词云
  2. HTML big 标签
  3. 已解决:Ubuntu16.4和Windows10创建共享文件夹
  4. (51)SSDT HOOK 实现进程保护
  5. oracle11 不能连接,oracle11G ora 12514 tns监听程序当前无法识别连接描述符中请求的服务...
  6. UI标签库专题十:JEECG智能开发平台 Form(form标签)
  7. 苹果A14芯片GeekBench跑分曝光:单核1583分 多核4198分
  8. 自定义jQuery 跨域请求 callback 函数名
  9. Salesforce LWC学习(二) helloWorld程序在VSCode中的实现
  10. linux上验证cudnn是否安装成功_Ubuntu 18.04安装CUDA(版本10.2)和cuDNN
  11. 基于Java+Swing+Socket实现中国象棋-网络版
  12. R语言怎么批量进行fisher检验?
  13. 服务器被打了之后怎么办?
  14. 2021河南高考成绩查询倒计时,距离2021年高考天数 2021高考倒计时
  15. 安徽农业大学计算机信息管理专业,刘连忠 - 安徽农业大学 - 信息与计算机学院...
  16. 微软高层新近对Linux桌面的说法
  17. 1-1(中文版)了解为什么要学英语?清楚英语的学习路线和方法
  18. filezilla检查新版本mac_FileZilla for Mac(ftp客户端工具)中文版
  19. Altium Designer.v17.0.6 Build 354
  20. 黑马程序员的就业班入学考试整理

热门文章

  1. H5 页面列表缓存方案
  2. angular之两种路由
  3. 在 Docker 中使用 flannel - 每天5分钟玩转 Docker 容器技术(60)
  4. JAVA_SE基础——24.面向对象的内存分析
  5. 08.LoT.UI 前后台通用框架分解系列之——多样的Tag选择器
  6. [转]收集android上开源的酷炫的交互动画和视觉效果:Interactive-animation
  7. Ubuntu使用VNC运行基于Docker的桌面系统
  8. Fiddler (五) Mac下使用Fiddler
  9. 运维自动化之基于python语言的文字界面的运维管理软件
  10. Gamebryo实例学习之二BackgroundLoad