mysql数据库笔记
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是一种开源的关系型数据库管理系统,被广泛应用于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基础笔记当学习MySQL 时,一些基础概念和语法是至关重要的。
以下是一份简单的MySQL 基础笔记,供参考:1. 数据库基础- 创建数据库:`CREATE DATABASE database_name;`- 选择数据库:`USE database_name;`- 显示数据库列表:`SHOW DATABASES;`- 删除数据库:`DROP DATABASE database_name;`2. 表操作- 创建表:```sqlCREATE TABLE table_name (column1 datatype,column2 datatype,...);```- 查看表结构:`DESCRIBE table_name;`- 插入数据:```sqlINSERT INTO table_name (column1, column2, ...)VALUES (value1, value2, ...);```- 查询数据:`SELECT * FROM table_name;`- 更新数据:`UPDATE table_name SET column1 = value1 WHERE condition;`- 删除数据:`DELETE FROM table_name WHERE condition;`- 删除表:`DROP TABLE table_name;`3. 条件筛选和排序- 条件筛选:`SELECT * FROM table_name WHERE condition;`- 排序:`SELECT * FROM table_name ORDER BY column_name;`4. 连接和关联- 内连接:`SELECT * FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;`- 左连接:`SELECT * FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;`- 右连接:`SELECT * FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;`5. 聚合函数和分组- 计数:`SELECT COUNT(column_name) FROM table_name;`- 求和:`SELECT SUM(column_name) FROM table_name;`- 平均值:`SELECT AVG(column_name) FROM table_name;`- 最大值:`SELECT MAX(column_name) FROM table_name;`- 最小值:`SELECT MIN(column_name) FROM table_name;`- 分组:`SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;`这些是MySQL 的基础知识点,还有更多高级概念和命令需要逐步学习和掌握。
MySQL数据库学习笔记

MySQL数据库学习笔记数据库 DDL: 数据定义语⾔, 包含数据库和表相关的操作(MySQL中保存数据需要先建库再建表,最后把数据保存到表中) DML: 数据操作语⾔, 包含增删改查相关的SQL DQL: 数据查询语⾔, 只包含查询相关的SQL TCL: 事务控制语⾔, 包括和事务相关的SQL DCL: 数据控制语⾔, 包括⽤户管理及权限分配相关的SQLDDL数据定义语⾔ 数据库相关SQL 1. 查询所有数据库 show databases; 2. 创建数据库 格式: create database 数据库名; 指定字符集格式: create database 数据库名 character set utf8/gbk; 举例: create database db1; create database db2 character set utf8; create database db3 character set gbk; show databases; 3. 查询数据库详情 格式: show create database 数据库名; 举例: show create database db1; show create database db2; show create database db3; 4. 删除数据库 格式: drop database 数据库名; drop database db3; 5. 使⽤数据库必须使⽤了某个数据库之后才能执⾏表和数据相关的SQL 格式: use 数据库名; use db1; 表相关SQL 操作表相关的SQL 必须使⽤了某个数据库之后再操作use db1; 1. 创建表 格式: create table 表名(字段1名类型,字段2名类型); 指定字符集格式: create table 表名(字段1名类型,字段2名类型) charset=utf8/gbk; 举例: create table person (name varchar(20),age int); create table student(name varchar(20),score int) charset=utf8; create table car(name varchar(20),price int) charset=gbk; 2. 查询所有表 格式: show tables; 3. 查询表详情 格式: show create table 表名 举例: show create table person; 4. 查看表字段 格式: desc 表名; 举例: desc student; 5. 删除表 格式: drop table 表名 举例: drop table car; 表相关SQL(续) use db1; 1. 修改表名格式: rename table 原名 to 新名; rename table student to stu; 2. 添加表字段 最后添加格式: alter table 表名 add 字段名类型; 最前⾯添加个格式: alter table 表名 add 字段名类型 fifirst; xxx字段后⾯添加格式: alter table 表名 add 字段名类型 after xxx; 举例: alter table person add gender varchar(5); //最后⾯ alter table person add id int fifirst; //最前⾯ alter table person add salary int after name;//name后⾯ 3. 删除表字段 格式: alter table 表名 drop 字段名; alter table person drop salary; 4. 修改表字段 格式: alter table 表名 change 原名新名新类型; alter table person change gender salary int;DML数据操作语⾔(数据相关SQL语句) 1. 插⼊数据 全表插⼊格式: insert into 表名 values(值1,值2); 值的数量和表字段⼀致 批量插⼊格式: insert into 表名 values(值1,值2),(值1,值2),(值1,值2); 举例: insert into person values("Tom",18); //全表插⼊ insert into person(name) values("Jerry"); //指定字段插⼊ insert into person values("AAA",10),("BBB",20), ("CCC",30); 中⽂问题: insert into person values("刘德华",30); 如果执⾏上⾯包含中⽂的SQL 报以下错误执⾏ set names gbk; 2. 查询数据 格式: select 字段信息 from 表名 where 条件; 举例: select name from person; //查询表中所有的名字 select name,age from person; //查询表中所有名字和年龄 select * from person; //查询表中所有数据的所有字段信息 select * from person where age>20; //查询年龄⼤于20岁的信息 select * from person where name='Tom'; //查询Tom的信息 3. 修改数据 格式: update 表名 set xxx=xxx,xxx=xxx where 条件; 举例: update person set age=8 where name='Jerry'; update person set name="张学友",age=50 where name="刘德华"; update person set age=15 where age<20; 4. 删除数据 格式: delete from 表名 where 条件; 举例: delete from person where name='Tom'; delete from person where age<20; delete from person; 约束* 概念:对表中的数据进⾏限定,保证数据的正确性、有效性和完整性。
Mysql笔记(附Mysql基础书pdf版)

Mysql笔记(附Mysql基础书pdf版)资料数据库篇SHOW DATABASES; //显⽰数据库系统中已经存在的数据库CREATE DATABASE 数据库名; //创建数据库DROP DATABASE 数据库名; //删除数据库表篇注:在使⽤操作表语句前,⾸先要使⽤USE语句选择数据库。
选择数据库语句的基本格式为“USE 数据库名”。
否则会报错,1046;CREATE TABLE 表名 ( 属性名数据类型 [完整性约束条件],属性名数据类型 [完整性约束条件],属性名数据类型);表名不能为SQL语句的关键字,⼀个表可以有多个属性。
定义时,字母⼤⼩写均可,各属性之间⽤逗号隔开,最后⼀个属性不需要加逗号。
主键主键有唯⼀值单字段主键属性名数据类型 primary key //创建主键,写在属性名数据类型后⾯;多字段主键primary key(属性名 1,属性名2,属性名n)两者的组合可以确定唯⼀的⼀条记录;外键外键不⼀定必须为⽗表的主键,但必须是唯⼀性索引,主键约束和唯⼀性约束都是唯⼀性索引;外键可以为空值;设置外键的基本语法规则如下:CONSTRAINT 外键别名 FOREIGN KEY(属性 1.1,属性1.2,属性1.n)REFERENCES 表名(属性2.1,属性2.2,属性2.n)其中,“外键别名”参数是为外键的代号;“属性1”参数列表是⼦表中设置的外键;“表名”参数是指⽗表的名称;“属性2”参数列表是⽗表的主键。
设置表的⾮空约束设置表的唯⼀性约束设置表的属性值⾃动增加查看表结构DESCRIBE 表名; // 查看表基本结构语句,可缩写为desc 表名SHOW CREATE TABLE 表名; //查看表详细结构语句(包含存储引擎、字符编码)删除表DROP TABLE 表名;//删除没有被关联的普通表删除⽗表需要先将外键删除,然后才能去删除⽗表。
字段篇//通过ALTER TABLE语句ALTER TABLE 旧表名 RENAME [TO] 新表名;//修改表名 TO参数是可选参数,是否在语句中出现不会影响语句的执⾏。
最全mysql笔记整理

最全mysql笔记整理mysql笔记整理作者:python技术⼈博客:Windows服务-- 启动MySQLnet start mysql-- 创建Windows服务sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格)连接与断开服务器mysql -h 地址 -P 端⼝ -u ⽤户名 -p 密码show processlist -- 显⽰哪些线程正在运⾏show variables -- 显⽰系统变量信息数据库操作-- 查看当前数据库select database();-- 显⽰当前时间、⽤户名、数据库版本select now(), user(), version();-- 创建库create database[ if not exists] 数据库名数据库选项数据库选项:character set charset_namecollate collation_name-- 查看已有库show databases[ like pattern ]-- 查看当前库信息show create database 数据库名-- 修改库的选项信息alter database 库名选项信息-- 删除库drop database[ if exists] 数据库名同时删除该数据库相关的⽬录及其⽬录内容表的操作-- 创建表create [temporary] table[ if not exists] [库名.]表名 ( 表的结构定义 )[ 表选项]每个字段必须有数据类型最后⼀个字段后不能有逗号temporary 临时表,会话结束时表⾃动消失对于字段的定义:字段名数据类型 [not null | null] [default default_value] [auto_increment] [unique [key] | [primary] key] [comment string ]-- 表选项-- 字符集charset = charset_name如果表没有设定,则使⽤数据库字符集-- 存储引擎engine = engine_name表在管理数据时采⽤的不同的数据结构,结构不同会导致处理⽅式、提供的特性操作等不同常见的引擎:InnoDB MyISAM Memory/Heap BDB Merge Example CSV MaxDB Archive不同的引擎在保存表的结构和数据时采⽤不同的⽅式MyISAM表⽂件含义:.frm表定义,.MYD表数据,.MYI表索引InnoDB表⽂件含义:.frm表定义,表空间数据和⽇志⽂件show engines -- 显⽰存储引擎的状态信息show engine 引擎名 {logs|status} -- 显⽰存储引擎的⽇志或状态信息-- ⾃增起始数auto_increment = ⾏数-- 数据⽂件⽬录data directory = ⽬录-- 索引⽂件⽬录index directory = ⽬录-- 表注释comment = string-- 分区选项PARTITION BY ... (详细见⼿册)-- 查看所有表show tables[ like pattern ]show tables from 表名-- 查看表机构show create table 表名(信息更详细)desc 表名 / DESCRIBE 表名 / EXPLAIN 表名 / SHOW COLUMNS FROM 表名 [LIKE PATTERN ]show table status [from db_name] [like pattern ]-- 修改表-- 修改表本⾝的选项alter table 表名表的选项eg: alter table 表名 engine=MYISAM;-- 对表进⾏重命名rename table 原表名 to 新表名rename table 原表名 to 库名.表名(可将表移动到另⼀个数据库)-- rename可以交换两个表名-- 修改表的字段机构(13.1.2. ALTER TABLE语法)alter table 表名操作名-- 操作名add[ column] 字段定义 -- 增加字段after 字段名 -- 表⽰增加在该字段名后⾯first -- 表⽰增加在第⼀个add primary key(字段名) -- 创建主键add unique [索引名] (字段名)-- 创建唯⼀索引add index [索引名] (字段名) -- 创建普通索引drop [ column] 字段名 -- 删除字段modify[ column] 字段名字段属性 -- ⽀持对字段属性进⾏修改,不能修改字段名(所有原有属性也需写上)change[ columns] 原字段名新字段名字段属性 -- ⽀持对字段名修改drop primary key -- 删除主键(删除主键前需删除其AUTO_INCREMENT属性)drop index 索引名 -- 删除索引drop foreign key 外键 -- 删除外键-- 删除表drop table[ if exists] 表名 ...-- 清空表数据truncate [table] 表名-- 复制表结构-- 复制表结构和数据create table 表名 [as] select * from 要复制的表名-- 检查表是否有错误check table tbl_name [, tbl_name] ... [option] ...-- 优化表optimize [local | no_write_to_binlog] table tbl_name [, tbl_name] ...-- 修复表repair [local | no_write_to_binlog] table tbl_name [, tbl_name] ... [quick] [extended] [user_frm]-- 分析表analyze [local | no_write_to_binlog] table tbl_name [, tbl_name] ...数据操作-- 增insert [into] 表名 [(字段列表)] values (值列表)[, (值列表), ...]-- 如果要插⼊的值列表包含所有字段并且顺序⼀致,则可以省略字段列表。
mysql笔记整理
mysql笔记整理MySQL是一种流行的开源关系型数据库管理系统,被广泛应用于各种网站和应用程序中。
作为一名开发人员或数据库管理员,熟悉MySQL的使用和管理是非常重要的。
在实际工作中,经常需要对数据库进行操作,因此我整理了一些MySQL的笔记,希望对大家有所帮助。
首先,我们需要了解MySQL的基本概念和术语。
数据库是一个存储数据的容器,可以存储各种类型的数据,如文本、数字、图片等。
表是数据库中的一个重要组成部分,用于存储具体的数据,表由多个列组成,每一列代表一种数据类型。
在MySQL中,可以通过SQL语句来操作数据库,SQL是结构化查询语言的缩写,是一种用于管理数据库的标准语言。
其次,我们需要了解如何创建数据库和表。
在MySQL中,可以通过CREATE DATABASE语句来创建数据库,通过CREATE TABLE语句来创建表。
在创建表时,需要指定表的名称和列的名称、数据类型等信息。
在设计表结构时,需要考虑数据的类型、长度、约束等因素,以确保数据的完整性和一致性。
接下来,我们需要了解如何插入、查询、更新和删除数据。
在MySQL中,可以通过INSERT INTO语句来插入数据,通过SELECT语句来查询数据,通过UPDATE语句来更新数据,通过DELETE语句来删除数据。
在查询数据时,可以使用WHERE子句来过滤数据,使用ORDER BY子句来排序数据,使用LIMIT子句来限制返回的数据数量。
此外,我们还需要了解如何使用索引和关联表。
索引是一种提高数据库查询性能的技术,可以加快数据的检索速度。
在MySQL中,可以通过CREATE INDEX语句来创建索引,通过DROP INDEX语句来删除索引。
关联表是一种将多个表的数据关联起来的技术,可以通过JOIN语句来实现表的关联操作。
最后,我们需要了解如何备份和恢复数据库。
在实际工作中,数据库可能会出现各种问题,如数据丢失、损坏等,因此备份数据库是非常重要的。
mysql笔记整理
MySQL笔记整理1. 基本概念:* MySQL是一个关系型数据库管理系统(RDBMS)。
* 数据库(DataBase):在计算机体系内,简单来讲就是存储数据的“仓库”,是按照数据结构来组织、存储和管理数据的仓库。
简称为DB。
通常是一个或一组文件,保存了一些符合特定规格的数据。
* 数据库软件称为数据库管理系统(DataBase Management System,DBMS)。
2. 数据类型:* 数值型:INT, FLOAT, DECIMAL* 日期和时间:DATE, TIME, DATETIME, TIMESTAMP, YEAR* 字符串:CHAR, VARCHAR, TEXT, BLOB3. SQL语句:* `SELECT`:用于查询数据。
* `INSERT INTO`:用于插入数据。
* `UPDATE`:用于更新数据。
* `DELETE`:用于删除数据。
4. 索引:* 索引是MySQL中用于提高检索操作速度的数据结构。
常见的索引类型有B-Tree索引和哈希索引。
5. 存储过程与函数:* MySQL允许用户编写存储过程和函数,这些可以用来封装复杂的业务逻辑。
6. 触发器:* 触发器是与表相关联的特殊类型的存储过程,当满足特定条件时会自动执行。
7. 事务处理:* MySQL支持事务处理,确保多个操作要么全部成功,要么全部失败。
事务处理常见的控制语句有`BEGIN`, `COMMIT`, 和`ROLLBACK`。
8. 视图:* 视图是基于SQL查询的虚拟表,它允许用户通过一个统一的接口访问数据,而不必关心底层的数据结构。
9. 分区:* 分区是将表或索引分散到多个物理子表中,每个子表都是表的一部分,提高了查询性能和管理效率。
10. 优化与安全:* MySQL提供了多种优化策略,如查询优化、索引优化、缓存优化等,以提高数据库性能。
同时,也提供了多种安全机制,如用户权限管理、数据加密等,确保数据的安全性。
MySQL笔记汇总
MySQL笔记汇总[⽬录]MySQL笔记汇总⼀、mysql简介数据简介结构化查询语⾔⼆、mysql命令⾏操作三、数据库(表)更改表相关字段相关索引相关表引擎操作四、数据库类型数字型字符串型⽇期型NULL值五、数据字段属性六、数据库索引主键索引(PRIMARY KEY)唯⼀索引(UNIQUE)常规索引(INDEX)全⽂索引(FULLTEXT)七、数据表的类型⼋、字符集设置九、mysql查询数据操作(DML)语⾔数据查询(DQL)语⾔查询语法⾔查询语法⼗、PHP中使⽤MYSQL⼀、mysql简介数据简介数据库是计算机应⽤系统中的⼀种专门管理数据资源的系统。
数据库就是⼀组经过计算机整理后的数据,存储在⼀个或者多个⽂件中,⽽管理这个数据库的软件就称为数据库管理系统。
主流的软件开发中应⽤数据库有IBM的DB2,Oracle,Informix,Sybase,SQL Server,PostgreSQL,MySQL,Access,FoxPro和Teradata等。
PHP脚本程序作为MySQL服务器的客户机程序,是通过PHP中的MySQL扩展函数,对MySQL服务器中存储的数据进⾏获取,插⼊,更新及删除等操作。
结构化查询语⾔SQL(Structured Query Language)是⼀种专门⽤于查询和修改数据库⾥的数据,以及对数据库进⾏管理和维护的标准化语⾔。
SQL语⾔结构简洁,功能强⼤,简单易学。
⽆论是Oracle,Sybase,Informix,SQL Server这些⼤型的数据库管理系统,还是像Visual Foxpro,PowerBuilder这些PC上常⽤的数据库开发系统,都⽀持SQL语⾔作为查询语⾔。
SQL语⾔包含四个部分:数据定义语⾔(DDL):⽤于定义和管理数据对象,包括数据库,数据表等。
例如:CREATE,DROP,ALTER等。
数据操作语⾔(DML):⽤于操作数据库对象中所包含的数据。
例如:INSERT,UPDATE,DELETE语句。
mysql基础完整笔记
MySQL是一个流行的关系型数据库管理系统。
以下是一个MySQL基础知识的完整笔记:安装与配置在不同的操作系统上安装MySQL。
配置MySQL服务器的端口、用户权限、日志文件等。
基本命令SHOW DATABASES;:显示所有数据库。
USE [database_name];:选择一个数据库。
SHOW TABLES;:显示当前数据库中的所有表。
数据类型数值类型:INT, FLOAT, DECIMAL, BIGINT 等。
日期和时间类型:DATE, TIME, DATETIME, TIMESTAMP 等。
字符串类型:CHAR, VARCHAR, TEXT, TINYTEXT 等。
创建表定义表结构,例如CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))。
使用AUTO_INCREMENT 自动生成主键。
插入数据使用INSERT INTO [table_name] (column1, column2, ...) VALUES (value1, value2, ...); 插入数据。
查询数据基本查询:SELECT * FROM [table_name];。
条件查询:SELECT * FROM [table_name] WHERE [condition];。
排序查询:SELECT * FROM [table_name] ORDER BY [column] [ASC|DESC];。
聚合函数:COUNT(), SUM(), AVG(), MAX(), MIN() 等。
更新数据使用UPDATE [table_name] SET column1 = value1, column2 = value2, ... WHERE [condition]; 更新数据。
删除数据使用DELETE FROM [table_name] WHERE [condition]; 删除数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mysql数据库使用net start命令使用net start命令查看windows系统已启动的服务。
net stop mysql:关闭mysql服务net start mysql:开启mysql服务mysql命令mysql-h host_name -u user_name–p password–h:当连接MySQL服务器不在同台主机时,填写主机名或IP地址–u:登录MySQL的用户名–p:登录MySQL的密码•注意:密码如果写在命令行的时候一定不能有空格。
如果使用的系统为linux并且登陆用户名字与MySQL的用户名相同即可不用输入用户名密码,linux默认是以root 登陆,windows默认用户是ODBCmysql程序常用命令❝选定默认数据库:use dbname;❝显示所有数据库:show databases;❝显示默认数据库中所有表:show tables;❝放弃正在输入的命令:\c❝显示命令清单:\h❝退出mysql程序:\q❝查看MySQL服务器状态信息:\s数据库的创建和删除系统数据库创建用户数据库用CREATE DATABASE命令创建数据库的语法格式如下。
CREATE DATABASE database_name;数据的符号问题->代表SQL语句没有输入完使用分号(;)结尾Delimiter [符号] ——创建结束符号,例如:delimiter // ——使用“//”作为分隔符SQL语句关键字和函数名不区分大小写(Linux区分,Windows不区分)使用函数时,函数名和后面的括号之间不能有空格改变数据库的存储地址1、停掉mysql服务2、在mysql目录中找到mysql.ini,修改里面的Path to the database root的地址(root为用户名)2、将老的数据库存储主路径中的数据库文件和文件夹复制到新的存储主路径。
3、重启mysql服务。
查看和选择数据库查看数据库命令:show databases;选择数据库命令:use 数据库名数据库的导入和导出导出数据库1.将数据库mydb导出到某文件中:打开开始->运行->输入cmd进入命令行模式Mysqldump –h主机名–u用户名–p密码-B 库1 库2 库3>地址备份导入数据库1.从命令行进入mysql,mysql> SOURCE d:/导入.sql;删除数据库删除数据库命令:drop database 数据库名自定义设置mysql程序分隔符DELIMITER $ #将分隔符设置为美元符号create trigger tri_stuInsert after inserton student for each rowbegindeclare c int;set c = (select stuCount from class where classID=new.classID); update class set stuCount = c + 1 where classID = new.classID; end$DELIMITER ; #将分隔符设置为分号数据库的表创建表(create)CREATE TABLE <表名>(<字段1> <数据类型1> [<列级完整性约束条件1>][,<字段2> <数据类型2> [<列级完整性约束条件2>]] [,…] [,<表级完整性约束条件1>][,<表级完整性约束条件2>] [,…]);例:创建一个学生信息表(student)Create table student(name char(10),sno int);查询表(select、desc)查看数据库有哪些表命令:show tables;查看表的结构:describe或desc表名查看表的详细定义:show create table 表名\G注:\G:让显示结果更加美观。
查询表中所有的数据:Select * from表名关联数据字段查询、外键数据查询(join或者inner join)语法:……FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditionaJOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。
LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。
RIGHT JOIN(右连接):与LEFT JOIN 相反,取得右表(table2)完全记录,即是左表(table1)并无匹配对应记录。
实例:详细介绍Inner join内连接,也叫等值连接,inner join产生同时符合A和B的一组数据。
复制代码代码如下:mysql> select * from A inner join B on = ;+----+--------+----+--------++----+--------+----+--------+| 1 | Pirate | 2 | Pirate || 3 | Ninja | 4 | Ninja |+----+--------+----+--------+Left join复制代码代码如下:mysql> select * from A left join B on = ;#或者:select * from A left outer join B on = ; +----+-----------+------+--------+| id | name | id | name |+----+-----------+------+--------+| 2 | Monkey | NULL | NULL || 3 | Ninja | 4 | Ninja || 4 | Spaghetti | NULL | NULL |+----+-----------+------+--------+4 rows in set (0.00 sec)left join,(或left outer join:在Mysql中两者等价,推荐使用left join.)左连接从左表(A)产生一套完整的记录,与匹配的记录(右表(B)) .如果没有匹配,右侧将包含null。
如果想只从左表(A)中产生一套记录,但不包含右表(B)的记录,可以通过设置where语句来执行,如下:复制代码代码如下:mysql> select * from A left join B on = where A.id is null or B.id is null;+----+-----------+------+------+| id | name | id | name |+----+-----------+------+------+| 2 | Monkey | NULL | NULL || 4 | Spaghetti | NULL | NULL |+----+-----------+------+------+2 rows in set (0.00 sec)同理,还可以模拟inner join. 如下:复制代码代码如下:mysql> select * from A left join B on = where A.id is not null and B.id is not null;+----+--------+------+--------+| id | name | id | name |+----+--------+------+--------+| 1 | Pirate | 2 | Pirate || 3 | Ninja | 4 | Ninja |+----+--------+------+--------+2 rows in set (0.00 sec)求差集:根据上面的例子可以求差集,如下:复制代码代码如下:SELECT * FROM A LEFT JOIN B ON = WHERE B.id IS NULLunionSELECT * FROM A right JOIN B ON = WHERE A.id IS NULL;# 结果+------+-----------+------+-------------+| id | name | id | name |+------+-----------+------+-------------+| 2 | Monkey | NULL | NULL || 4 | Spaghetti | NULL | NULL || NULL | NULL | 1 | Rutabaga || NULL | NULL | 3 | Darth Vader |+------+-----------+------+-------------+四.Right join复制代码代码如下:mysql> select * from A right join B on = ; +------+--------+----+-------------+| id | name | id | name |+------+--------+----+-------------+| NULL | NULL | 1 | Rutabaga || 1 | Pirate | 2 | Pirate || NULL | NULL | 3 | Darth Vader |+------+--------+----+-------------+4 rows in set (0.00 sec)同left join。
Cross joincross join:交叉连接,得到的结果是两个表的乘积,即笛卡尔积笛卡尔(Descartes)乘积又叫直积。
假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。
可以扩展到多个集合的情况。
类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。
复制代码代码如下:mysql> select * from A cross join B;+----+-----------+----+-------------+| id | name | id | name |+----+-----------+----+-------------+| 1 | Pirate | 1 | Rutabaga || 2 | Monkey | 1 | Rutabaga || 3 | Ninja | 1 | Rutabaga || 4 | Spaghetti | 1 | Rutabaga || 2 | Monkey | 2 | Pirate || 3 | Ninja | 2 | Pirate || 4 | Spaghetti | 2 | Pirate || 1 | Pirate | 3 | Darth Vader || 2 | Monkey | 3 | Darth Vader || 3 | Ninja | 3 | Darth Vader || 4 | Spaghetti | 3 | Darth Vader || 1 | Pirate | 4 | Ninja || 2 | Monkey | 4 | Ninja || 3 | Ninja | 4 | Ninja || 4 | Spaghetti | 4 | Ninja |+----+-----------+----+-------------+16 rows in set (0.00 sec)#再执行:mysql> select * from A inner join B; 试一试#在执行mysql> select * from A cross join B on = ; 试一试实际上,在MySQL 中(仅限于MySQL)CROSS JOIN 与INNER JOIN 的表现是一样的,在不指定ON 条件得到的结果都是笛卡尔积,反之取得两个表完全匹配的结果。