MYSQL必知必会读书笔记显示数据库
- 格式:docx
- 大小:16.09 KB
- 文档页数:1
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知识点与笔记1. 数据库的三范式是什么?第⼀范式:强调的是列的原⼦性,即数据库表的每⼀列都是不可分割的原⼦数据项。
第⼆范式:要求实体的属性完全依赖于主关键字。
所谓完全依赖是指不能存在仅依赖主关键字⼀部分的属性。
第三范式:任何⾮主属性不依赖于其它⾮主属性。
2. ⼀张⾃增表⾥⾯总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,⼜插⼊了⼀条数据,此时 id 是⼏?表类型如果是 MyISAM ,那 id 就是 8。
表类型如果是 InnoDB,那 id 就是 6。
InnoDB 表只会把⾃增主键的最⼤ id 记录在内存中,所以重启之后会导致最⼤ id 丢失。
3. 如何获取当前数据库版本?使⽤ select version() 获取当前 MySQL 数据库版本。
4. 说⼀下 ACID 是什么?Atomicity(原⼦性):⼀个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。
事务在执⾏过程中发⽣错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执⾏过⼀样。
即,事务不可分割、不可约简。
Consistency(⼀致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。
这表⽰写⼊的资料必须完全符合所有的预设约束、触发器、级联回滚等。
Isolation(隔离性):数据库允许多个并发事务同时对其数据进⾏读写和修改的能⼒,隔离性可以防⽌多个事务并发执⾏时由于交叉执⾏⽽导致数据的不⼀致。
事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串⾏化(Serializable)。
Durability(持久性):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
5. char 和 varchar 的区别是什么?char(n) :固定长度类型,⽐如订阅 char(10),当你输⼊"abc"三个字符的时候,它们占的空间还是 10 个字节,其他 7 个是空字节。
MySQL必知必会读后感「MySQL必知必会」,上⼤学时,每个计算机专业的学⽣必备的数据库神书。
当时觉得枯燥乏味,毕业5年后,重新阅读了此书,发现此书真的是⼀本通俗易懂、涉及知识⾯⼴但浅尝辄⽌的数据库⼊门书。
以下为此次阅读后⼀些新的认识的总结。
1.DISTINCT-查询去重所有的字段的结果集,如下SQL会查询users表中name和age排重后的结果集select discitct name,age from users;2.LIKE和REGEXP的异同LIKE和REGEXP的不同在于,LIKE匹配整个串⽽REGEXP匹配⼦串。
利⽤定位符,通过⽤^开始每个表达式,⽤$结束每个表达式,可以使REGEXP的作⽤与LIKE⼀样。
3.BINARY区分⼤⼩写(MySQL3.23.4后)MySQL默认查询结果不区分⼤⼩写,如⼀下SQL语句,会把表中name为「apple」、「APPLE」、「Apple」、「aPPle」等结果都查出来。
select * from fruit where name = 'apple'如果只想查出「apple」,需要在字段前增加「BINARY」关键字,那么MySQL将进⾏区分⼤⼩写的查询,只会查出「apple」4.GROUP BY的使⽤(1) GROUP BY ⼦句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。
(2) 如果在 SELECT 中使⽤表达式,则必须在GROUP BY⼦句中指定相同的表达式,不能使⽤别名。
(3) 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY⼦句中给出。
5.分组后的筛选-HAVING这⾥有另⼀种理解⽅法,WHERE在数据分组前进⾏过滤,HAVING在数据分组后进⾏过滤。
5.组合查询:UNION和UNION ALL组合查询意味着必须要有两条及以上的select语句,且两个语句中的字段必须⼀样,顺序可不⼀样。
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数据库学习笔记数据库 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必背50条语句1. 创建数据库:```sqlCREATE DATABASE dbname;```2. 删除数据库:```sqlDROP DATABASE dbname;```3. 选择数据库:```sqlUSE dbname;```4. 显示所有数据库:```sqlSHOW DATABASES;```5. 创建表:```sqlCREATE TABLE tablename (column1 datatype,column2 datatype,...);```6. 查看表结构:```sqlDESC tablename;```7. 删除表:```sqlDROP TABLE tablename;```8. 插入数据:```sqlINSERT INTO tablename (column1, column2, ...) VALUES (value1, value2, ...);```9. 查询数据:```sqlSELECT * FROM tablename;```10. 条件查询:```sqlSELECT * FROM tablename WHERE condition;```11. 更新数据:```sqlUPDATE tablename SET column1 = value1, column2 = value2 WHERE condition;```12. 删除数据:```sqlDELETE FROM tablename WHERE condition;```13. 查找唯一值:```sqlSELECT DISTINCT column FROM tablename;```14. 排序数据:```sqlSELECT * FROM tablename ORDER BY column ASC/DESC;```15. 限制结果集:```sqlSELECT * FROM tablename LIMIT 10;```16. 分页查询:```sqlSELECT * FROM tablename LIMIT 10 OFFSET 20;```17. 计算行数:```sqlSELECT COUNT(*) FROM tablename;```18. 聚合函数:```sqlSELECT AVG(column), SUM(column), MIN(column), MAX(column) FROM tablename;```19. 连接表:```sqlSELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;```20. 创建索引:```sqlCREATE INDEX indexname ON tablename (column);```21. 查看索引:```sqlSHOW INDEX FROM tablename;```22. 删除索引:```sqlDROP INDEX indexname ON tablename;```23. 备份整个数据库:```sqlmysqldump -u username -p dbname > backup.sql;```24. 恢复数据库:```sqlmysql -u username -p dbname < backup.sql;```25. 修改表结构:```sqlALTER TABLE tablename ADD COLUMN newcolumn datatype;```26. 重命名表:```sqlRENAME TABLE oldname TO newname;```27. 增加主键:```sqlALTER TABLE tablename ADD PRIMARY KEY (column);```28. 删除主键:```sqlALTER TABLE tablename DROP PRIMARY KEY;```29. 增加外键:```sqlALTER TABLE tablename ADD CONSTRAINT fk_name FOREIGN KEY (column) REFERENCES othertable(column);```30. 删除外键:```sqlALTER TABLE tablename DROP FOREIGN KEY fk_name;```31. 查看活动进程:```sqlSHOW PROCESSLIST;```32. 杀死进程:```sqlKILL process_id;```33. 给用户授权:```sqlGRANT permission ON dbname.tablename TO 'username'@'host';```34. 撤销用户权限:```sqlREVOKE permission ON dbname.tablename FROM 'username'@'host';```35. 创建用户:```sqlCREATE USER 'username'@'host' IDENTIFIED BY 'password';```36. 删除用户:```sqlDROP USER 'username'@'host';```37. 修改用户密码:```sqlSET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');```38. 查看用户权限:```sqlSHOW GRANTS FOR 'username'@'host';```39. 启用外键约束:```sqlSET foreign_key_checks = 1;```40. 禁用外键约束:```sqlSET foreign_key_checks = 0;```41. 启用查询缓存:```sqlSET query_cache_type = 1;```42. 禁用查询缓存:```sqlSET query_cache_type = 0;```43. 查看服务器版本:```sqlSELECT VERSION();```44. 查看当前日期和时间:```sqlSELECT NOW();```45. 查找匹配模式:```sqlSELECT * FROM tablename WHERE column LIKE 'pattern';```46. 计算平均值:```sqlSELECT AVG(column) FROM tablename;```47. 查找空值:```sqlSELECT * FROM tablename WHERE column IS NULL;```48. 日期比较:```sqlSELECT * FROM tablename WHERE date_column > '2022-01-01';```49. 将结果导出为CSV 文件:```sqlSELECT * INTO OUTFILE 'output.csv' FIELDS TERMINATED BY ',' FROM tablename;```50. 将结果导入其他表:```sqlLOAD DATA INFILE 'input.csv' INTO TABLE tablename FIELDS TERMINATED BY ',';。
MySQL必知必会学习笔记1、sql在处理or操作之前,优先处理and操作符。
案例:select * from products where vend_id=1002 or vend_id=1003 and prod_price>=10 处理过程select * from products where vend_id=1002 or (vend_id=1003 and prod_price>=10)建议:在使用多个or 或and 语句的时候使用()来避免歧义。
2、in 操作符跟or的作用相同,但是:in的语法比or更简洁;in 比or执行速度快;in里面还可以包含其他select语句。
3、通配符效率很低,必须要用的话也不要放在where的最前面4、在MySQL中使用正则表达式。
like会匹配整个列,若果被匹配的文本只是在列值中出现,like不会查到,除非使用通配符,但是regexp在列值中进行匹配,如果在列值中出现,如regexp就会找到它。
select * from products where prod_name regexp …1000‟查处prod_name中包含1000的行。
常用的正则表达式有:. | ^ $[123] tong=[1|2|3] tong =…1 tong‟ or …2 tong‟ or …3 tong‟1|2|3 tong = …1‟ or …2‟ or …3 tong‟[1-9] 如果要匹配特殊字符必须要使用…\\ …做前导。
比如:select * from products where prod_name regexp …\\.‟如要转义\ 则需要\\\* + ? {n} {n,} {n,m}5、计算字段。
(1)、拼接concatenateselect concat(vend_name, …( … , vend_country, …)‟ ) from vendor ;rtrim 去掉右边的空格ltrim 去掉左边的空格trim 去掉两边的空格。
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。
配置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]; 删除数据。
MySQL数据库笔记总结MySQL数据库总结⼀、数据库简介1. 数据 所谓数据(Data)是指对客观事物进⾏描述并可以鉴别的符号,这些符号是可识别的、抽象的。
它不仅仅指狭义上的数字,⽽是有多种表现形式:字母、⽂字、⽂本、图形、⾳频、视频等。
现在计算机存储和处理的数据范围⼗分⼴泛,⽽描述这些数据的符号也变得越来越复杂了。
2. 数据库 数据库(Database,DB)指的是以⼀定格式存放、能够实现多个⽤户共享、与应⽤程序彼此独⽴的数据集合。
举例:车库,⽔库,数据库3. 数据库管理系统 数据库管理系统(Database Management System,DBMS)是⽤来定义和管理数据的软件。
如何科学的组织和存储数据,如何⾼效的获取和维护数据,如何保证数据的安全性和完整性,这些都需要靠数据库管理系统完成。
⽬前,⽐较流⾏的数据库管理系统有:Oracle、MySQL、SQL Server、DB2等。
4. 数据库应⽤程序 数据库应⽤程序(Database Application System,DBAS)是在数据库管理系统基础上,使⽤数据库管理系统的语法,开发的直接⾯对最终⽤户的应⽤程序,如学⽣管理系统、⼈事管理系统、图书管理系统等。
5. 数据库管理员 数据库管理员(Database Administrator,DBA)是指对数据库管理系统进⾏操作的⼈员,其主要负责数据库的运营和维护。
6. 最终⽤户 最终⽤户(User)指的是数据库应⽤程序的使⽤者。
⽤户⾯向的是数据库应⽤程序(通过应⽤程序操作数据),并不会直接与数据库打交道。
7. 数据库系统 数据库系统(Database System,DBS)⼀般是由数据库、数据库管理系统、数据库应⽤程序、数据库管理员和最终⽤户构成。
其中DBMS是数据库系统的基础和核⼼。
⼆、数据库分类(⼀)、数据库的分类 数据库经过⼏⼗年的发展,出现了多种类型。
根据数据的组织结构不同,主要分为⽹状数据库、层次数据库、关系型数据库和⾮关系型数据库四种。
MySQL是一种关系型数据库管理系统,它使用结构化查询语言(SQL)来进行数据管理和查询。
以下是MySQL数据库的基础知识笔记:
数据库:一组相关数据的集合。
表:存储在数据库中的数据组织形式。
列:表中的一个字段,定义了该列所存储的数据类型。
行:表中的一条记录,由多个列组成。
主键:唯一标识表中每一行的特定列。
外键:一个表中的列,与另一个表中的主键建立连接关系,用于保证数据完整性和减少数据冗余。
索引:为了提高查询效率而创建的数据结构,可以根据索引快速搜索和查找数据。
关系型数据库:以表格形式存储数据,通过关联不同表之间的主键和外键来建立关系。
非关系型数据库:将数据以文档、键值对或图形等方式存储,适用于分布式、非结构化数据场景。
SQL语句:用于对MySQL数据库进行查询、插入、更新和删除操作的编程语言,包括SELECT、INSERT、UPDATE、DELETE等命令。
MySql学习笔记MySql学习笔记MySql概述:MySql是一个种关联数据库管理系统,所谓关联数据库就是将数据保存在不同的表中,而不是将所有数据放在一个大的仓库中。
这样就增加了速度与提高了灵活性。
并且MySql软件是一个开放源码软件。
注意,MySql所支持的TimeStamp的最大范围的问题,在32位机器上,支持的取值范围是年份最好不要超过2030年,然后如果在64位的机器上,年份可以达到2106年,而对于date、与datetime这两种类型,则没有关系,都可以表示到9999-12-31,所以这一点得注意下;还有,在安装MySql的时候,我们一般都选择Typical(典型安装)就可以了,当然,如果还有其它用途的话,那最好选择Complete(完全安装);在安装过程中,一般的还会让你进行服务器类型的选择,分别有三种服务器类型的选择,(Developer(开发机)、Server Machine(服务器)、Dedicated MySql Server Machine(专用MYSQL服务器)),选择哪种类型的服务器,只会对配置向导对内存等有影响,不然其它方面是没有什么影响的;所以,我们如果是开发者,选择开发机就可以啦;然后接下来,还会有数据库使用情况对话框的选择,我们只要按照默认就可以啦;连接与断开服务器:连接:在windows命令提示符下输入类似如下命令集:mysql –h host –u user –p 例如,我在用的时候输入的是:mysql –h localhost –u root –p 然后会提示要你输入用户密码,这个时候,如果你有密码的话,就输入密码敲回车,如果没有密码,直接敲回车,就可以进入到数据库客户端;连接远程主机上的mysql,可以用下面的命令:mysql –h 159.0.45.1 –u root –p 123 断开服务器:在进入客户端后,你可以直接输入quit然后回车就可以了;下面就数据库相关命令进行相关说明Alter table test add(address varchar(50) not null default …xm?,email varchar(20) not null);将表中某个字段的名字修改或者修改其对应的相关属性的时候,要用change对其进行操作; Alter table test change email email varchar(20) not null default …zz?;//不修改字段名Alter table test change email Email varchar(30) not null;//修改字段名称删除表中字段:Alter table test drop email;//删除单个字段Alter table test drop address,drop email;//删除多列可以用Drop来取消主键与外键等,例如:Alter table test drop foreign key fk_symbol; 删除索引:Drop index index_name on table_name; 例如:drop index t on test;向表中插入记录:注意,当插入表中的记录并不是所有的字段的时候,应该要在前面列出字段名称才行,不然会报错;Insert into test(name) values(…ltx?);Insert into test values(1,?ltx?);也可以向表中同时插入多列值,如:Insert into test(name) va lues(…ltx?),(…hhy?),(…xf?);删除表中记录:Delete from test;//删除表中所有记录;Delete from test where id=1;//删除表中特定条件下的记录;当要从一个表或者多个表当中查询出一些字段然后把这些字段又要插入到另一个表当中的时候,可以用insert …..select语法;Insert into testt(name) (select name from test where id=4);从文件中读取行插入数据表中,可以用Load data infile语句;Load data infile …test.txt? into table test;可以用Describe语法进行获取有关列的信息;Describe test;//可以查看test表的所有信息,包括对应列字段的数据类型等;MySql事务处理相关语法;开始一项新的事务:start transaction或者begin transaction 提交事务:commit事务回滚:rollbackset autocommit true|false 语句可以禁用或启用默认的autocommit模式,只可用于当前连接; 例子:Start transaction;Update person set name=?LJB? where id=1;Commit | rollback;数据库管理语句修改用户密码:以root用户为例,则可以写成下面的;mysql –u root –p 旧密码–password 新密码Mysql –u root –password 123;//将root用户的密码修改成123,由于root 用户开始的时候,是没有密码的,所以-p旧密码就省略了;例如修改一个有密码的用户密码:mysql –u ltx –p 123 –password 456;增加一个用户test1,密码为abc,让他可以在任何时候主机上登陆,并对所有数据库有查询、插入、修改、删除的权限。
mysql工作笔记MySQL 是一种常见的关系型数据库管理系统(RDBMS),用于存储和检索数据。
以下是一些关于MySQL 工作时可能有用的笔记:连接到MySQL 数据库:```bashmysql -u username -p```在这里,`username` 是你的数据库用户名,系统会提示你输入密码。
显示数据库:```sqlSHOW DATABASES;```选择数据库:```sqlUSE database_name;```显示所有表:```sqlSHOW TABLES;```显示表结构:```sqlDESCRIBE table_name;```查询数据:```sqlSELECT * FROM table_name;```插入数据:```sqlINSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3); ```更新数据:```sqlUPDATE table_name SET column1 = value1 WHERE condition;```删除数据:```sqlDELETE FROM table_name WHERE condition;```创建数据库:```sqlCREATE DATABASE database_name;```创建表:```sqlCREATE TABLE table_name (column1 datatype,column2 datatype,...);```删除数据库:```sqlDROP DATABASE database_name;```删除表:```sqlDROP TABLE table_name;```使用索引:```sqlCREATE INDEX index_name ON table_name (column1, column2, ...);```用户管理:```sqlCREATE USER 'username'@'localhost' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';FLUSH PRIVILEGES;```查看当前用户:```sqlSELECT CURRENT_USER();```这只是一个简单的入门级别的MySQL 工作笔记,覆盖了一些基本的数据库操作和管理任务。
MySQL知识点总结(完整版)MySQL学习笔记登录和退出MySQL服务器# 登录MySQL$ mysql -u root -p1*******# 退出MySQL数据库服务器exit;基本语法-- 显⽰所有数据库show databases;-- 创建数据库CREATE DATABASE test;-- 切换数据库use test;-- 显⽰数据库中的所有表show tables;-- 创建数据表CREATE TABLE pet (name VARCHAR(20),owner VARCHAR(20),species VARCHAR(20),sex CHAR(1),birth DATE,death DATE);-- 查看数据表结构-- describe pet;desc pet;-- 查询表SELECT * from pet;-- 插⼊数据INSERT INTO pet VALUES ('puffball', 'Diane', 'hamster', 'f', '1990-03-30', NULL);-- 修改数据UPDATE pet SET name = 'squirrel' where owner = 'Diane';-- 删除数据DELETE FROM pet where name = 'squirrel';-- 删除表DROP TABLE myorder;建表约束主键约束-- 主键约束-- 使某个字段不重复且不得为空,确保表内所有数据的唯⼀性。
CREATE TABLE user (id INT PRIMARY KEY,name VARCHAR(20));-- 联合主键-- 联合主键中的每个字段都不能为空,并且加起来不能和已设置的联合主键重复。
CREATE TABLE user (id INT,name VARCHAR(20),password VARCHAR(20),PRIMARY KEY(id, name));-- ⾃增约束-- ⾃增约束的主键由系统⾃动递增分配。
《MySQL必知必会》读书笔记⼀、了解MySQL1、什么是数据库?数据库是⼀种以某种有组织的⽅式存储的数据集合。
2、模式(schema):关于数据库和表的布局及特性的信息。
3、列:正确的将数据分解为多个列极为重要。
通过把它分解开,才有可能利⽤特定的列对数据进⾏排序和过滤。
4、主键(primary key):⼀列,其值能够唯⼀区分表中每个⾏,⽤来表⽰⼀个特定的⾏。
应该保证创建的每个表具有⼀个主键,以便于以后的数据操纵和管理。
5、外键:6、SQL语句不区分⼤⼩写,但是开发⼈员通常对所有SQL关键字⼤写,⽽对所有列和表名使⽤⼩写,这样做使代码更易于阅读和调试。
⼆、使⽤MySQL1、连接 mysql -h localhost -u root -p xxxx2、show命令:show databases;use databases;show tables;show columns from tablename; ==== describe tablename;show status; ⽤于显⽰⼴泛的服务器状态信息show create database databasename;show create table tablename; 分别⽤来显⽰创建特定数据库或表的MySQL语句。
show grants; ⽤来显⽰授予⽤户(所有⽤户或特定⽤户)的安全权限show errors; show warnings; ⽤来显⽰服务器错误或警告消息help show;显⽰允许的show语句MySQL 5⽀持⼀个新的Information_schema命令,可⽤它来获得和过滤模式信息。
三、检索数据1、select语句:为了检索数据,必须⾄少给出两条信息--想选择什么,从什么地⽅选。
select column from tablename; 检索单个列,如果未排序,返回的顺序可能是数据的添加顺序也可能不是。
select column1,column2 from tablename; 检索多个列select * from tablename; 检索所有列,除⾮你确实需要表中的每个列,否则最好别⽤*通配符。
mysql基础知识笔记总结创建数据库在与数据进⾏任何其他操作之前,需要创建⼀个数据库。
数据库是数据的容器。
它可以⽤于存储联系⼈,供应商,客户或任何想存储的数据。
在MySQL中,数据库是⽤于存储和操作诸如表,数据库视图,触发器,存储过程等数据的对象的集合。
要在MySQL中创建数据库,请使⽤CREATE DATABASE语句,如下:CREATE DATABASE [IF NOT EXISTS] database_name;SQL我们来更详细地看看CREATE DATABASE语句:CREATE DATABASE语句的后⾯是要创建的数据库名称。
建议数据库名称尽可能是有意义和具有⼀定的描述性。
IF NOT EXISTS是语句的可选⼦句。
IF NOT EXISTS⼦句可防⽌创建数据库服务器中已存在的新数据库的错误。
不能在MySQL数据库服务器中具有相同名称的数据库。
例如,要创建⼀个名称为mytestdb数据库,可以执⾏CREATE DATABASE语句后接数据库名称:mytestdb,如果当前MySQL服务器中没有数据库:mytestdb,则创建成功,如下所⽰:CREATE DATABASE IF NOT EXISTS mytestdb;SQL执⾏此语句后,MySQL返回⼀条消息,通知新数据库是否已成功创建。
显⽰数据库SHOW DATABASES语句显⽰MySQL数据库服务器中的所有数据库。
您可以使⽤SHOW DATABASES语句来查看您要创建的数据库,或者在创建新数据库之前查看数据库服务器上的所有数据库,例如:+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || testdb || yiibaidb |+--------------------+5 rows in set在此MySQL数据库服务器中有6个数据库。
MYSQL必知必会读书笔记显示数据库
MySQL是一种开放源代码的关系型数据库管理系统,MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言进行数据库管理。
show column from tablename;
对每一个字段返回一行,行中包含字段名,数据类型、是否允许NULL、键信息、默认值以及其他信息。
describe 语句: MySQL支持使用describ作为show columns from 的一种快捷方式。
describ tablename 所支持的其他的show语句:
show status,用于显示广泛的服务器状态信息
show create database和show create table ,分别用来显示创建特定数据库或表的Mysql 语句。
show grants,用来显示授予用户的安全权限。
show errors 和show warnings ,用来显示服务器错误或警告消息。
MYSQL 5支持一个新的information_schema 命令,可用它来获得和过滤模式信息。