MySQL笔记
MySQL个人学习笔记

MySQL个人学习笔记一、mysql常见的数据类型:int(8) 整形,float(5,1) 浮点型,规定插入的值不超过5位数字,小数点后面带两位数字且小数点超出后会四舍五入,double(5,2)一样是浮点型decimal(5,2) 一样是浮点型。
char(8)字符型,varchar(8)可变字符型。
date,values(‘2014-04-23’)或(20104423)time,values(‘12:30:50’)或(123050)year,values(2014)datetime,values(‘1993-03-12 12:30:12‘)或(012)null 类型。
表示什么都没有。
null 不等于 ' ' ~~~。
二、mysql常见的运算符:+、-、*、/、%、<,>,=,>=,<=,!=,<=>(用于安全等于null值。
no <=> null)NOT 或 !,AND 或 && ,OR 或 ||,三、mysql常见的函数:ABS(X)返回x的绝对值。
CURDATE() 返回当前的日期 2014-04-23CURTIME() 返回当前的时间 19:17:13NOW() 返回当前的日期和时间 2014-04-23 19:17:48聚合函数:AVG(COLUME) 求该列的平均值, COUNT(COL) 计算列中非null的行数,MIN(COL)求该列的最小值,MAX(COL) 求该列的最大值,SUM(COL) 求该列值的和,COUNT(*) 计算表中所有的行数,包括null值。
四、数据库和表:1、创建数据库。
create database db1; 或着 create databse if not exists db1;2、选择需要的数据库。
use db1;3、删除数据库。
drop database db1; 或者 drop databse if exists db1;4、创建表:create table table_name (name char(2),id int(2),....)type=xxxx;4.1 字段约束:首先 null 不等于 ' 'null:当某列的约束为null时,该字段的值可以插入null,表示没有数据。
mysql笔记之常用命令

mysql笔记常用命令2020●数据库命令:创建:creata database 数据库名; 查询;show databases;切换;use 数据库;删除;drop database 数据库名;查看表:show tables;打开表:desc 表名称;删除表:drop tables 表明;●sql语句必须加“;”号;●mysql 数据类型经常变化的字段用varchar 知道固定长度的用char 尽量用varchar 超过255的字符只能用varchar或者text 能用varchar的地方不用text●数值—日期/时间—字符串●创建数据表表名—字段名—定义字段●create table table-name (column_name column_type);●删除数据表1、当你不再需要该表时,用 drop;2、当你仍要保留该表,但要删除所有记录时,用 truncate;3、当你要删除部分记录时,用 delete。
●DROP TABLE table_name●mysql插入数据●insert into table_name (field1,field2...) values (value1,value2,....) 如果数据是字符型,必须使用单引号或者双引号,如:"value"。
●mysql查询数据select column_name,column_nae FROM table_name [WHRER Clause] [LIMIT N] [OFFSET M]●查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
●你可以使用 WHERE 语句来包含任何条件。
●你可以使用 LIMIT 属性来设定返回的记录数。
●你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。
默认情况下偏移量为0。
select * : 返回所有记录 limit N : 返回 N 条记录 offset M : 跳过 M 条记录, 默认 M=0, 单独使用似乎不起作用 limit N,M : 相当于 limit M offset N , 从第 N 条记录开始, 返回 M 条记录●mysql whrer子句●select field1,field2,... from table_name1,table_name2...whrer condition1 [AND [OR]] condition2... 你可以使用 AND 或者 OR 指定一个或多个条件。
MySQL必知必会笔记

MySQL必知必会笔记(一)基础知识和基本操作第一章了解MySQL数据库保存有组织的数据的容器。
(通常是一个文件或一组文件)人们经常使用数据库这个术语代替他们使用的软件。
这是不正确的,确切的说,数据库软件应称为DBMS(数据库管理系统),数据库是通过DBMS创建和操纵的容器。
漱口可以是保存在硬件设备上的文件,但也可以不是。
你使用DBMS来代替自己访问数据库。
表表是一种结构化的文件可用来存储某种特定的类型的数据。
某种特定类型数据的结构化清单。
模式关于数据库和标的布局及特性的信息列表中的一个字段。
表由列组成。
列中存储着表里某部分的信息。
数据类型所容许的数据的类型。
每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。
行表中的一个记录主键一列(或一组列),其值能够唯一区分表中的每个行。
虽然不是必须的,但是一般都建立主键。
便于以后的数据管理表中任何列都可以作为主键,只要满足以下条件:1 任意两行都不具有相同的主键值。
2 每个行都必须有一主键值(主键值不允许为NULL)主键的最好习惯:不更新主键列的值不重用主键列的值不在主键列中使用可能会更改的值什么是sqlSql是结构化查询语言的缩写。
Sql是一种专门用类与数据库通信的语言。
第二章 MySQL简介什么是Mysql Mysql是一种DBMS,即它是一种数据库软件。
Mysql版本主要更改4-——InnoDB引擎,增加了事务处理、并、改进全文搜索等支持4.1——对函数库、子查询、集成帮助等的重要增加、5——存储过程、触发器、游标、试图等。
第三章使用mysql连接主机名端口一个合法用户用户口令Mysql -u root -p -h myserver -P 9999选择数据库可使用USE关键字,mysql语言组成部分的一个关键字,绝不要使用关键字命名一个表或列USE dataname;显示数据库列表SHOW DATABASES;一个数据库内的表的列表(USE进入数据库的情况下)SHOW TABLES;SHOW也可以用来显示表列SHOW COLUMNS FROM column;DESCRIBE 是SHOW COLUMNS的一种快捷方式;DESCRIBE cust;其他的SHOW语句SHOW STATUS 显示广泛的服务器状态信息SHOW CREATE DATABASE 显示创建特定数据库的MYSQL语句SHOW CREATE TABLE 显示创建特定表的MYSQL语句SHOW GRANTS 显示授权用户的安全权限SHOW ERRORS 显示服务器的错误信息SHOW WARNINGS 显示服务器的警告信息MySQL必知必会笔记(二)SELECT语句检索排序过滤通配符搜索正则表达式搜索第四章检索数据检索单列SELECT columnOne FROM table;检索多列SELECT columnOne,columnTwo,columnThire FORM table;检索所有列SELECT * FROM products; //一般,除非你确实需要表中的每个列,否则最好不要用*通配符检索不同的行检索出来的数据不重复DISTINCT关键字,顾名思义返回不同的值SELECT DISTINCT columnOne FROM table; //检索出来的columnOne 没有重复值DISTINCT关键字应用于所有列而不仅是前置它的列SELECT DISTINCT vend_id,prod_price......要求vend_id,prod_price这两列都不出现重复的值限制结果条数sql语句后面加入下面sql语句LIMIT 5 显示结果的前5条LIMIT 3,4从行3开始的后4行LIMIT 4 OFFSET 3 从行3开始的后4行第五章排序检索数据子句 Sql语句是由子句构成,有些子句是必须的,有些事可选的。
mysql笔记

mysql笔记Mysql的第一次回忆Mysql的总的概括可以分为两个部分:三建、四句。
三建指的是:建库、建表格、建约束。
四句指的是:添加、删除、修改、查询。
数据库:存放数据的库,由表、关系、以及操作对象组成,它存放在表中。
实体:行,客观存在,可以被描述的事物。
在java中称为对象。
又称之为记录。
属性:列,事物的特征。
又称之为字段。
数据库服务器:在机器上安装了一个数据库管理程序,一个数据库服务器可以管理多个数据库,一个数据库可以创建多张表。
三建建库:使用关键字create database 库名;建表:使用关键字create table 表名(属性1 类型primary key ;属性2 类型,属性3 类型);在创建表的时候,要注意使用关键字“use 库名”使用指定的数据库。
在创建表时,要根据需要保存的数据创建相应的列,并且根据其类型定义相应的类型。
Mysql中的数据类型:int、char (固定的字符类型)、varchar(可变得字符类型)、boolean 、float(m,d)m代表指定显示的长度,d代表指定的小数位数、text、DateTime、timeStamp时间搓可以自动记录update 、insert的时间。
(时间的规定:从某个时间到现在所经历的毫秒数。
)建约束作用:保障传入数据的数据有效性和准确性。
约束分为:主键约束、外键约束、唯一值约束、非空、检查约束(在mysql中没用)、默认值约束、标识列。
主键约束:在属性后面加上关键字primary key,作用是保证记录的唯一性。
它的值不能重复,也不能为null。
外键约束:在表的外键引用主表的主键。
通过约束后,在进行删除操作时,必须先删子表,再删父表。
在进行更新的时候,必须先更新父表,在更新子表。
不过加入级联删除删除后可以省去删除的麻烦(on delete cascade),加入级联更新后可以省去更新的麻烦(on update cascade)。
MySQL自学笔记

MySQL自学笔记1. 字符串mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello'; +-------+---------+-----------+--------+--------+| hello | "hello" | ""hello"" | hel'lo | 'hello |+-------+---------+-----------+--------+--------+mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello"; +-------+---------+-----------+--------+--------+| hello | 'hello' | ''hello'' | hel"lo | "hello |+-------+---------+-----------+--------+--------+2. 数据库、表、索引、列和别名如果标识符是一个受限掉的词或包含特殊的字符,当使用它时,必须以一个` (backtick) 来引用它。
mysql> SELECT * FROM `select` WHERE `select`.id > 100;句法意味着表在当前数据库中。
mysql基础笔记”

mysql基础笔记”MySQL是一种开源的关系型数据库管理系统,被广泛应用于Web 应用程序的数据存储和管理。
下面是关于MySQL基础的一些笔记:1. 数据库,MySQL是基于数据库的,数据库是一个用于存储和管理数据的容器。
可以创建多个数据库,每个数据库可以包含多个表。
2. 表,表是数据库中的一个组成部分,用于存储数据。
表由行和列组成,每一列代表一个数据字段,每一行代表一条记录。
3. 字段,字段是表中的列,用于存储特定类型的数据。
每个字段都有一个数据类型,如整数、字符串、日期等。
4. 主键,主键是表中的一列或一组列,用于唯一标识表中的每一行。
主键的值不能重复,且不能为空。
5. 外键,外键是表中的一列,用于建立表与表之间的关系。
外键与其他表中的主键相关联,用于确保数据的完整性和一致性。
6. 查询,查询是从数据库中检索数据的操作。
可以使用SQL语句来编写查询,SQL是结构化查询语言。
7. 插入,插入是向表中添加新记录的操作。
可以使用INSERT语句来插入数据。
8. 更新,更新是修改表中现有记录的操作。
可以使用UPDATE语句来更新数据。
9. 删除,删除是从表中删除记录的操作。
可以使用DELETE语句来删除数据。
10. 索引,索引是对表中的一列或多列进行排序的结构,用于加快数据的检索速度。
可以根据索引进行快速的查询操作。
11. 视图,视图是基于一个或多个表的查询结果,可以像表一样使用。
视图可以简化复杂的查询操作,提供更方便的数据访问方式。
12. 事务,事务是一组数据库操作的集合,要么全部执行成功,要么全部回滚。
事务可以确保数据的一致性和完整性。
13. 存储过程,存储过程是一组预编译的SQL语句,可以在数据库中进行复杂的操作。
存储过程可以提高数据库的性能和安全性。
14. 触发器,触发器是与表相关联的特殊类型的存储过程,可以在插入、更新或删除数据时自动执行。
以上是关于MySQL基础的一些笔记,希望对你有所帮助。
《快速念咒:MySQL入门指南与进阶实战》笔记

《快速念咒:MySQL入门指南与进阶实战》阅读记录1. 第一章数据库基础在开始学习MySQL之前,了解一些数据库的基础知识是非常重要的。
数据库是一个用于存储和管理数据的计算机软件系统,它允许用户通过关键字或特定的查询语言来检索、更新和管理数据。
在数据库中,数据是以表格的形式进行组织的,每个表格都包含了一组相关的数据项,这些数据项被称为记录。
表(Table):表是数据库中存储数据的基本单位。
每个表都有一个唯一的名称,并由行(Row)和列(Column)组成。
每一行代表一个数据记录,每一列代表一个特定的数据属性。
字段(Field):字段是表中的一列,代表了数据的一种属性。
每个字段都有一个唯一的名称和一个数据类型,用于定义该字段可以存储的数据种类。
主键(Primary Key):主键是表中的一个特殊字段,用于唯一标识表中的每一行记录。
主键的值必须是唯一的,且不能为NULL。
外键(Foreign Key):外键是一个表中的字段,它的值引用了另一个表的主键值。
外键用于建立两个表之间的联系,确保引用完整性。
索引(Index):索引是一种数据库优化技术,用于提高查询性能。
通过创建索引,数据库可以更快地定位到表中的特定记录,而不必扫描整个表。
SQL(Structured Query Language):SQL是用于与数据库进行交互的编程语言。
它包括用于数据查询、插入、更新和删除的操作符和语法结构。
理解这些基本概念是学习MySQL的前提。
通过掌握SQL语言的基本语法和操作,你将能够有效地管理和操作数据库中的数据。
在接下来的章节中,我们将深入探讨MySQL的具体应用,包括如何创建和管理数据库、表、以及如何执行复杂的查询操作。
2. 第二章数据库设计《快速念咒:MySQL入门指南与进阶实战》是一本全面介绍MySQL 数据库的书籍,其中第二章详细阐述了数据库设计的基础知识和实践技巧。
在这一章节中,作者首先介绍了数据库设计的基本概念和目标,包括数据模型、实体关系模型(ER模型)等,并解释了如何通过这些模型来描述现实世界中的数据和业务逻辑。
Mysql笔记

目录Mysql笔记 (2)一、MySQL简介 (2)1.1、MySQL关系(Relation)型数据库(DataBase)管理系统 (2)二、服务器端与客户端软件 (2)2.1、服务器端软件 (2)2.2、客户端软件 (2)三、数据类型和操作符 (3)3.1列的数据类型 (3)3.2操作(运算)符 (4)四、函数 (5)4.1、数值函数 (5)4.2日期函数 (5)4.3字符串函数 (6)五、创建与管理数据库中的表及数据 (8)5.1创建与删除数据库 (8)5.2创建数据库表 (9)5.3修改表结构:alter (9)5.4删除表drop table 表名 (10)5.5管理数据库中表的数据 (10)六、查询数据(***) (11)6.1.基本的查询语句 (11)6.2关联查询、多表查询 (13)6.3子查询(*) (14)七、数据库设计 (15)7.1单表设计 (15)7.2 数据库逻辑设计 (15)7.3数据的物理设计 (16)7.4外键foreign key (16)八、Mysql进阶 (17)8.1、存储引擎 (17)8.2 事务(transaction) (17)8.3存储过程procedure: (18)8.4 、视图View:将一个复杂的查询定义为一个视图 (19)8.5 触发器trigger (19)8.6 索引(index) (20)8.7 显示数据库更多信息:show命令 (20)8.8、数据库管理 (21)九、PHP联接与操作数据库 (21)9.1 准备 (21)9.2联接数据库服务器 (22)9.3选择数据库 (22)9.4执行操作 (22)9.5其它函数: (22)Mysql笔记一、MySQL简介1.1、MySQL关系(Relation)型数据库(DataBase)管理系统数据库是表(Table)的集合其它数据库管理系统:SQLServer,Oracle,Sybase,Forpro特点:开发源码. LAMP二、服务器端与客户端软件工作模式:Client/Server2.1、服务器端软件setup.exe2.2、客户端软件1)自带命令行工具显示数据库:show database s;使用数据库: use 数据库名;显示数据库表: show tables;显示表结构:describe 表名;查询表中的所有数据:select * from 表名;创建数据库: create database 数据库名;删除数据库:drop database 数据库名;显示当前的版本,当前日期:select version(),current_date;帮助:help退出: exit,quit2)软件:MySQLyog:绿色版本SQL:(select insert update delete create alter drop) 三、数据类型和操作符表table:二维表格3.1列的数据类型<1>数值:整型与浮点数整型tinyint 1个字节smallint 2个字节meduimint 3个字节int(integer): 4个字节(byte)bigint 8个字节<2>浮点型:float: 单精度型4个字节double: 双精度型8个字节decimal(10,2): 确切精度,numeric同decimal<3>、字符串char(len): 定长字符串char(100)varchar(len): 变长字符串varchar(100)binary(len): 定长二制字符串varbinary(len): 可变二制字符串<4>、日期日期:显示的格式:yyyy-MM-dd时间:显示的格式: hh:mm:ss日期时间:显示的格式:yyyy-MM-dd hh:mm:ss<5>、blob与textblob(binary large object): 二进制大对象:可以放图片,mp3 text:文本大对象: 放一篇文章3.2操作(运算)符<1>算术运算符+-*/%+:算述运算,有字符串时,字符串转换为数字<2>比较运算符:<,<=,>,>=,!=(<>),=(不是==)比较的结果为1或0,或nullnull参与比较时,结果为null比较运算符:is (not) true,is (not) false,is (not)unknownis (not) null`函数:isnull(列名):判断一个列的值是否是null:expr between min and max:(含min与max)expr in(3,4,5)ecpr not in(3,4,5)<3>、逻辑运算符NOT(!) AND(&&) OR(||) XOR<4>、控制流程函数case-when()select case 3 when 1 then 'one' when 2 then 'two' else 'more' end; select case when 1>2 then '太阳从西边出来' when 1<2if(expr1,expr2,expr3):expr1为true,则为expr2,否则为expr3ifnull(expr1,expr2):如果expr1为null,则为expr2,否则为expr1 nullif(expr1,expr2):如果expr1=expr2,则返回null,否则返回expr1四、函数4.1、数值函数rand():取[0,1]之间的随机数4.2日期函数<1>、日期函数当前日期:curdate(),current_date,current_date()当前时间:curtime(),current_time,current_time()当前日期时间,now(),sysdate()<2>date_add(日期时间,interval expr type)type:year(年),month(月),day(天)hour(时),minute(分),second(秒)day_second 天时:分:秒<3>从日期时间中获得年、月、日、时、分、秒extract(type from date)year(日期),month(日期),day(日期)datediff(d1,d2):天数差,d1>d2正数<4>将日期转换为字符串:date_format(date,format)<5>将字符串转换为日期:str_to_date(str,format)<6>常见格式:%Y:4位年份,%m月份,%d日%H:24小时,%h12小时,%i:分.%S%s:秒4.3字符串函数◆字符串长度:lengthSELECT LENGTH('认真学习MySQL');注:utf_8下汉字为三个字节char_lengthSELECT CHARACTER_LENGTH('认真学习MySQL');◆联接字符串concatSELECT CONCAT('php','mysql','Oracle');◆用分隔符联接字符串concat_wsSELECT CONCAT_WS('$','php','mysql','Oracle');◆将数用不同的进制表示345SELECT HEX(345),OCT(345),BIN(345);◆获取子字符串:substring(str,pos,len),位置从1开始的SELECT SUBSTRING('PHP and MySQL',5,3);◆获取标点前的字符substring(str,标点,pos)SELECT SUBSTRING_INDEX('','.',1);结果为:www SELECT SUBSTRING_INDEX('','.',2);结果为:www.baiduSELECT SUBSTRING_INDEX('','.',-1);结果为:comSELECT SUBSTRING_INDEX('','.',-2);结果为:◆插入与修改子字符串insert:len=0相当于插入,替换的字符个数SELECT INSERT('PHP MySQL Oracle',5,5,'SQLServer');SELECT INSERT('PHP MySQL Oracle',5,0,'SQLServer ');◆查找子字符串的位置:instr(str,findstr)、locate(findstr,str,pos(开始查找的位置不写的话默认从开头查找))SELECT INSTR('PHP MySQL Oracle','MySQL');SELECT LOCATE('MySQL','PHP MySQL Oracle');◆填充字符串lpad,rpad(padding)SELECT LPAD('MySQL',10,'$');SELECT RPAD('MySQL',10,'$');SELECT TRIM(LEADING 'x' FROM 'xxxxMySQLxxxxx');SELECT TRIM(BOTH 'x' FROM 'xxxxMySQLxxxxx');SELECT TRIM(TRAILING 'x' FROM 'xxxxMySQLxxxxx');◆生成字符串repeat◆反转字符串reverse(str)◆替换字符串replace(str,from_str,to_str)◆比较字符串strcmp(str1,str2):str1>str2:返回1,str1=str2:0否则返回-1◆转为大写:upper,ucase◆转为小写:lower,lcase◆Like:可以使用通配符,(模糊查询)◆%:任意多个字符,_:一个字符没有的话返回值为4.4强制类型转换函数cast(expr as type)convert(expr,type)type:date,time,datetime,signed(有符号数)unsigned(无符号数),char(n)字符串五、创建与管理数据库中的表及数据SQL:Structured Query Language:结构化查询语句:特点:只要告诉它“做什么”,而不考虑如何做组成部分:DDL(Data Definition Language):数据定义语言Create、alter、dropDML(Data Manipulation Language):数据操作语言Select、insert 、update、deleteDCL(Data Control Language):数据控制语言grant revoke5.1创建与删除数据库create databse 数据库名;create database 数据库名character set utf8;drop database 数据库名5.2创建数据库表●表的设计:(表名,哪些列,列的数据类型,有哪些约束)增、删、改、查●创建数据库表的基本语法:create table 表名(列名1 数据类型[约束],列名2 数据类型[约束],....列名n 数据类型[约束])约束:主键:primary key自增长:auto_increment唯一:unique不为空:not null.(默认为null)5.3修改表结构:alteralter table 表名rename 新表名--改表名drop 列名--删除列add 列的定义--新增列change 原列名新列名:增加列:改列名:5.4删除表drop table 表名5.5管理数据库中表的数据insert:插入一条记录update:修改将表中所有行的sex和brif属性修改:只修改特定行:delete:删除六、查询数据(***)6.1.基本的查询语句1、查询列2、选择行:where子句<,<=,>= and orbetween andin3、去掉重复行(distinct) Select distinct salary from emp;4、排序:order by子句:升序asc(默认)降序(desc)5、组(group)函数min:最小值max:最大值avg:平均值sum:求和count(*):记录个数count(mgr_id):非null的记录个数6、统计子句group by与having子句结果为:结果为:注:当选项三个以上是时可用case when1 then7、limit子句,总是放在最后limit 6:显示前6条记录limit 3,3:显示第4条开始,3条记录分页查询语句:2个参数:第几页,一页显示几条记录2 6小结:select 列名1 as 别名,列名2,....列名nfrom 表名where 子句group by子句(分组统计)having 子句order by子句limit 子句6.2关联查询、多表查询1、笛卡尔乘积:select * from 表1,表2;2、左联接左内联接:内联接语法:Selec t *from 表1,表2 where 表1.属性=表2.属性例子:左外联接Selec t *from 表1 left join表2 on表1.属性=表2.属性(常用)等值联接,与非等值联接6.3子查询(*)select查询出的结果是表(table)select语句放在select子句,from子句,where子句,having子句中七、数据库设计7.1单表设计设计内容:表名,列名,列的类型,列约束表名、列名:有意义的英文单词,不用汉字、不用拚音,可在表名前加前缀表中有多少列:由实际需求确定列的类型:字符串:varchar(长度)数值类型:字段要参加运算,numeric(10,2)有确定值的字段:用tinyint日期:date datetime约束:主键:为每一个表设计一个主键,而且用没有意义的字段id作为主键,自增长唯一:unique默认值:default是否为空:not null7.2 数据库逻辑设计系统:有哪些实体(Entity),实体之间有哪些关系(Relation)?论坛:用户,帖子,回帖,积分实体之间主要有两种关系:1)一对多关系:一个用户可以发很多帖子,部门员工2)多对多关系: 学生课程建立系统的E-R模型7.3数据的物理设计实体==>表一对多关系==>两张表,一方各一张表,关系如何表示:多方放一方的主键作为外键多对多关系:学生-课程每个实体用一张表表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
03_MySQLDay01一、数据库(DataBase DB)1、数据库:存储数据的仓库2、数据库分类:(1)关系型数据库:二维表存储数据(Mysql,SQLServer,Orcale,DB2等)(2)非关系型数据库(Nosql):MongDB等3、Mysql安装(1)window:配置文件my.ini进入命令行开始--运行--cmd(2)Linux:配置文件:/etc/f终端mysql -uroot -p说明: Mysql 数据库的存储位置/var/lib/mysql4、Mysql登录mysql -u用户名-p密码[-P3306][-D数据库名称]5、Mysql退出quitexit\q6、Mysql注释-- 注释# 注释7、修改提示符(Prompt)(1)进入MySQL的命令prompt 提示符名称(2)登录MySQL写的命令mysql -uroot -p --prompt=提示符名称说明:a.恢复提示符prompt mysql>b.特殊符号\h 主机名称\D 系统时间日期\d 选择数据库名称8、SQL(Structured Query Language)结构化查询语句(1)DDL(数据创建语言):创建数据库,创建表、创建视图等CREATE(创建),DROP(删除),ALTER(修改)(2)DML(数据操作语言):对数据库的数据的增,删,改INSERT(添加),DELETE(删除),UPDATE(改)(3)DQL(数据查询语言):对数据库的数据查询SELECT(查询)(4)DCL(数据库控制语言):分配(GRANT)用户权限及权限(REVOKE)撤销9、SQL命令行规范a.系统命令大写,名称小写b.SQL命令行以分号结束或\g说明:结束分隔符可以用delimiter 符号名称c.SQL命令行支持折行,但不能在函数,名称,引号中不能折行d.SQL命令中的名称不能用关键字和保留字,如果使用必须用反引号``括起来,例如`user`10、创建数据库(DDL)(1)查看数据库SHOW DATABASES;(2)创建数据库CREATE DATABASE [IF NOT EXISTS]数据库名称[[DEFAULT] CHARACTERSET [=] 编码];(3)查看创建数据库命令SHOW CREATE DATABASE 数据库名称;(4)删除数据库DROP DATABASE [IF EXISTS] 数据库名称;(5)修改数据库的编码ALTER DATABASE 数据库名称[DEFAULT] CHARACTER SET [=]编码;(6)选择数据库USE 数据库名称;(7)查看当前选择的数据库SELECT DATABASE();11、创建数据库中的表(1)查看表SHOW TABLES;(2)创建表结构CREATE TABLE [IF NOT EXISTS] 表名(字段(Field)名称|列名称数据类型[字段属性|约束条件],字段(Field)名称|列名称数据类型[字段属性|约束条件]...)[ENGINE=InnoDB DEFAULT CHARSET=utf8];说明:数据库最小单位是表,一定是先有表结构再添加数据(3)查看表结构DESC 表名;DESCRIBE 表名;SHOW COLUMNS FROM 表名;(4)查看创建表结构命令SHOW CREATE TABLE 表名;12、数据操作(DML DQL)(1)插入数据INSERT 表名(字段1,字段2...)VALUE[S](值,值...),(值,值...)...;(2)查询数据:SELECT * FROM 表名;SELECT 字段1,字段2,... FROM 表名; 13、MySQL数据类型(1)整型TINYINT([M]) [UNSIGNED|ZEROFILL]:范围:大小1字节(Byte 2^8)有符号位-128~127无符号0~255SMALLINT([M]) [UNSIGNED|ZEROFILL]:范围:大小2字节(Byte 2^16)有符号位-32768~32767无符号0~65535MEDIUMINT([M]) [UNSIGNED|ZEROFILL]:范围:大小3字节(Byte 2^24)有符号位-8388608~8388607无符号0~16777215INT([M]) [UNSIGNED|ZEROFILL]:范围:大小4字节(Byte 2^32)有符号位-2147483648~2147483647无符号0~4294967295BIGINT([M]) [UNSIGNED|ZEROFILL]:范围:大小8字节(Byte 2^64)说明:字段属性:UNSIGNED:无符号位(正数) ZEROFILL: 当显示的长度小于指定长度用0填补,会自动添加UNSIGNED (2)浮点a.单精度浮点FLOAT([M,D]) [UNSIGNED|ZEROFILL]范围:-3.40e38 ~3.40e38b.双精度浮点DOUBLE([M,D]) [UNSIGNED|ZEROFILL]-1.79e308 ~1.79e308c.定长浮点DECIMAL([M,D])[UNSIGNED|ZEROFILL]说明:当指定D小点位数,FLOAT,DOUBLE超出指定位数会四舍五入存近似值,DECIMAL超出指定位数,报警告错误,DECIMAL存精确值(3)字符型a.CHAR([M]):定长字符(0-255字节一个字母占一个字节)b.VARCHAR([M]):变长字符(0-65535字节)VARCHAR存储长度受下面情况影响:(a)一个字段最大65535字节(b)编码gbk:至多占2个字节utf8:至多占3个字节65532/3 =21844(c)多个字符型字段中总的长度不能超过65535(21844)c.TINYTEXT:0-255字节d.TEXT:0-65535字节e.MEDIUMTEXT:0-16777215字节f.LONGTEXT:0-4294967295字节说明: CHAR效率高但不省空间,VARCHAR效率低但省空间,TEXT效率最低(4)布尔型BOOLEANTINYINT(1)(5)枚举类型ENUM:范围:0-65535字节例如:sex ENUM('man','woman','secret');14、约束条件(1)NOT NULL:不为空DEFAULT:默认值[PRIMARY] KEY:主键,一个表中只能有一个主键,并且是主键的字段一定自动添加NOT NULL 和不重复(UNIQUE)UNIQUE [KEY]:不重复,一个表中可以有多个不重复(例如:用户名不重复,邮箱不重复)AUTO_INCREMENT:自动增长,字段如果是编号当添加记录(行)时,编号自增,并且AUTO_INCREMENT的字段一定是主键。
Day02一、表结构的修改(DDL)1、添加表结构的字段a.ALTER TABLE 表名ADD 字段名数据类型[字段属性|约束条件][FIRST|AFTER 字段名];b. 添加多个字段ALTER TABLE 表名ADD 字段名数据类型[字段属性|约束条件][FIRST|AFTER 字段名],ADD 字段名数据类型[字段属性|约束条件][FIRST|AFTER 字段名]...;2、删除字段ALTER TABLE 表名DROP 字段名,DROP 字段名...;3、修改字段ALTER TABLE 表名MODIFY 字段名数据类型[字段属性|约束条件][FIRST|AFTER 字段名];4、修改字段名称ALTER TABLE 表名CHANGE 旧字段名新字段名数据类型[字段属性|约束条件][FIRST|AFTER 字段名];5、添加默认值ALTER TABLE 表名ALTER 字段名SET DEFAULT 值;6、删除默认值ALTER TABLE 表名ALTER 字段名DROP DEFAULT;7、添加主键ALTER TABLE 表名ADD PRIMARY KEY(字段名称);8、删除主键ALTER TABLE KEY|INDE表名DROP PRIMARY KEY;说明:如果有AUTO_INCRMENT属性,一定要先删除AUTO_INCRMENT才能删除主键9、添加唯一性a.ALTER TABLE 表名ADD UNIQUE KEY|INDEX(字段名);b.a.ALTER TABLE 表名ADD [CONSTRAINT 约束名称] UNIQUE KEY|INDEX(字段名);10、删除唯一性ALTER TABLE 表名DROP KEY|INDEX 唯一性约束名称;说明:如果添加唯一性没有设置唯一性约束名称,默认为字段名称11、修改表名称a. ALTER TABLE 表名RENAME [AS|TO] 新表名;b. RENAME TABLE 旧表名TO 新表名;12、重置自动增长ALTER TABLE 表名AUTO_INCREMENT=1;二、帮助? 命令help 命令\h 命令三、表中对数据的操作(DML)(1)添加(INSERT)a.不列出表字段的添加(从第一字段到最后一个字段都赋值)INSERT [INTO] 表名VALUE[S] (值,值,值...);b.不省略字段添加(添加一条记录)INSERT [INTO] 表名(字段名,字段名...) VALUE[S] (值,值...);c.不省略字段添加(添加多记录)INSERT [INTO] 表名(字段名,字段名...)VALUE[S](值,值...),(值,值...)...;d.INSERT...SET (只能添加一条记录)INSERT [INTO] 表名SET 字段名=值,字段名=值...;(2)更新(UPDATE)UPDATE 表名SET 字段名=值,字段名=值... [WHERE 条件];说明:如果更新没有WHERE 条件,表中字段值都相同的值记录(3)删除(DELETE)a.DELETE FROM 表名[WHERE 条件];说明:如果删除没有WHERE 条件,将会清空表中所有数据,AUTO_INCREMENT 不重置b. TRUNCATE 表名;说明: 清空表中所有数据,并且AUTO_INCREMENT 重置四、表中对数据的查询(DQL)1、查询所有字段(效率底)SELECT * FROM 表名;2、列出字段查询SELECT 字段名|expr,字段名|expr...FROM 表名;3、给字段起别名SELECT 字段名[AS]别名FROM 表名;4、给表起别名SELECT 字段名FROM 表名[AS]别名;5、表名(别名).字段名(字段来自哪个表)SELECT 表名(别名).字段名FROM 表名[AS]别名;6、数据库名.表名(表来自哪个数据库)SELECT 字段名FROM 数据库名.表名;7、SELECT 字段名|expr,字段名|expr...FROM 表名[WHERE 条件][GROUP BY 字段][HAVING 条件][ORDER BY 字段][LIMIT [$offset,]$length];7.1WHERE 条件:条件过滤(1)比较运算符> >= < <= =(等于) != <><=>(判断NULL)(2)IS [NOT] NULL (判断NULL)(3)[NOT] BETWEEN ...AND 范围值(4)[NOT] IN(值,值...) 某个值(5)逻辑运算符实现条件过滤!非&& AND 与|| OR 或(6) LIKE 实现模糊查询[NOT] LIKE '字符串'关键字(1)%:包含任意多个字符(0个,1个,多个)(2)_: 包含任意一个字符7.2 GROUP BY 字段:分组,将字段中相同的值分为一组说明:a.分组值显示一个结果,如果多个值显示小编号的结果,一般显示分组的字段b. 分组结合聚合函数使用COUNT(*):获得每组中的个数,包含nullCOUNT(字段) :不包含null值AVG(字段):获得每组中的平均值MAX(字段):获得每组中的最大值MIN(字段):获得每组中的最小值SUM(字段):获得每组中的和7.3 HAVING 条件:二次条件过滤说明:a. WHERE 对字段的条件过滤b. HAVING对一个运行结果的条件过滤,结合分组使用7.4 ORDER BY 字段:对字段排序说明:ORDER BY 字段[ASC升序|DESC降序]7.5LIMIT [$offset,]$length:显示n条记录说明:a.$offset:偏移量,起始编号,编号从0开始b.$length:显示记录(行)长度c.实现web程序的分页原理计算$offset =(当前页-1)*显示长度$offset = ($curpage-1)*$pagesizeDay03一、对表中的数据查询SELECT 字段名,字段名...FROM 表名[WHERE 条件][GROUP BY 字段][HAVING 条件][ORDER BY 字段][LIMIT [$offset,]$length]计算$offset = (当前页-1)*显示条数实现web页面分页原理二、MySQL运算符和函数说明:用SELECT 语句输出显示1、算术运算符及函数a. + - * / % ,MOD 求余数b.POW POWER 求幂次c. SQRT 开平方d.FLOOR 向下取整e.CEIL 向上取整f.ROUND 四舍五入g.RAND:随机小数[0,1)例如: [0-100]整数ROUND( RAND()*100)2、字符函数a.LOWER:转为小写字母b.UPPER:转为大写字母c.SUBSTR, SUBSTRING:字符串截取,编号从1开始d.CONCAT:CONCAT(str,str,str);字符串连接e.CONCAT_WS:CONCAT_WS(delimiter,str,str,str)用分隔符将字符串连接f.TRIM: 清除两边空格g.RTRIM:清除右边空格h.LTRIM:清除左边空格i.REPLACE: 字符串替换REPLACE($str,$reseach,$replacement)j.LENGTH :字符串长度3、比较运算符a. > >= < <= = != <> <=>判断NULL值b. [NOT] BETWEEN ... ANDc. [NOT] IN(值,值...)d. IS [NOT] NULL 判断NULL值4、逻辑运算符! (非)&& AND (与并且)|| OR (或)5、信息函数a. DATABASE() :显示当前选择数据库b. NOW():获得系统时间日期函数c. VERSION()获得MYSQL版本d. USER():获得当前使用MYSQL的用户6、聚合函数COUNT(*): 获得每组中的个数,包含null值COUNT(字段):不包含null值AVG(字段):获得每组中的平均值MAX(字段):获得每组中的最大值MIN(字段):获得每组中的最小值SUM(字段):获得每组中的和7、加密函数MD5:返回32位的散列值PASSWORD三、多表操作1、表复制INSERT 表(字段,字段...)SELECT ...2、多表更新(根据一个表更新另一个字段)UPDATE 表1INNER JOIN 表2ON 两个表的逻辑关系SET 字段=值[WHERE 条件];3、多表联合查询SELECT 字段名,字段名... FROM 表1连接类型表2ON 两个表的逻辑关系连接类型表3ON 两个表的逻辑关系(1)连接类型a.内连接(INNER JOIN):查找两个表符合条件的信息b.外连接:左外连接(LEFT [OUTER] JOIN)显示左表中的所有信息和右表中符合条件的信息,如果左表中的信息右表没有,用null 填补右外连接(RIGHT [OUTER] JOIN)显示右表中的所有信息和左表中符合条件的信息,如果右表中的信息左表没有,用null 填补4、多表删除(根据一个表删除另一个表的信息)DELETE 删除表FROM 表1INNER JOIN 表2ON 两个表的逻辑关系[WHERE 条件]5、子查询(嵌套查询)1.子查询:在SQL语句中嵌套SELECT语句2.特点:(1)子查询是嵌套SELECT语句(2) 子查询的SELECT语句要用括号括起来并起别名(3)一般结合WHERE 和GROUP BY 使用3.使用(1)WHERE后使用a. INb. 比较运算符:说明:比较运算符只能比较一个结果,当结果不唯一时,会报错,要ALL 或SOME/ANY 来解决> >= ALL 大于最大值< <= ALL 小于最小值> >= SOME/ANY 大于最小值< <= SOME/ANY 小于最大值= SOME/ANY IN(2)FROM 后使用:产生新表用括号括起来,并且起别名,例如联合查询产生新表4. INSERT...SET:可以实现子查询四、约束条件(Constraint)1、约束:对字段实现非空,唯一,完整性等约束。