83.用命令行访问数据库:
mysql -h192.168.1.75 -uroot -p111111
注意如果已经用mysql的命令窗口链接到数据库,则不能再用上面的链接。可以点开始-》运行-》cmd运行链接命令
84.删除匿名用户:MySql的默认配置是允许任何用户在不提供用户名和密码的条件下对系统进行访问。显然,这并不是我们所希望的。
我们可以删除匿名用户:
use mysql
delete from user where User='';
85.SQL(结构化查询语言)的全称是Structured Query Language。它是访问关系数据库管理系统的标准语言
键:表中的标志列称为键,或者主键(id)一个键可能由几列组成
86。关系:一对一,一对多,多对多
87.创建数据库 create database name;——name表示替换要建立的数据库名称
88.use database;——选择要使用的数据库
89.创建数据库表:
create table customers
(customerid int unsigned not null auto_increment primary key,
name char(50) not null,
address char(100) not null,
age int unsigned not null,
);
NOT NULL——意思是表中所有行的此属性必须有一个值
AUTO_INCREMENT——是一个特殊的MySQL特性,可以在整数列中使用它,它的意思是在表中插入行的时候,如果将该字段设置为空,那么MySQL将自动
产生一个唯一的标识符值。该值比本列中现存的最大值更大。在每个表中只能有一个这样的值。指定AUTO_INCREMENT的列必须是索引列
PRIMARY KEY——表示该列是表的主键
UNSIGNED(无符号)——整数类型后面的UNSIGNED意思是它只能是0或者一个正数
90.char与varchar类型的区别:
char(固定长度字符)——无论数据大小是多少,char类型的列都会用空格填补空白
varchar(可变长度字符)——varchar列宽随数据变化大小
获取char类型数据的时候与存储varchar数据的时候,MYSQL将过滤多余的空格
虽然varchar类型数据占用空间较小,但是char类型数据速度更快,
91。用show 和 describe来查看数据库:
show tables——查看表格
show databases——查看数据库
describe tablesname——查看表结构
92.如何创建多列主键:
create table order_items(
orderid int unsigned not null,
isbn char(13) not null,
quantity tinyint unsigned,
primary key(orderid, isbn)
93.创建索引:可以使用create index语句来实现
CREATE [UNIQUE|FULLTEXT] INDEX index_name
ON table_name (index_column_name [(length)] [ASC|DESC],....)
);
FULLTEXT索引用来索引文本字段,可选的length字段允许指定只有该字段前length个字符将被索引,也可以指定一个索引的排序为升序或降序;默认
是升序
94.理解MYSQL的标识符:
Database(数据库)——允许在操作系统目录名中出现的任何字符,不包括"/","\","."
Table(表) ——允许在操作系统目录名中出现的任何字符,不包括"/","."
Column(列)——任何字符
index(索引)——任何字符
和Alias(别名)——任何字符
如果使用特殊字符作为标识符,唯一的限制是要用后引号将其括起来 ``如:
create database `create database`;
95.列的名称和别名的名称不区分大小写,但是不能在同一个SQL语句中使用不同的大小写
96.选择列数据类型:当创建该类型列的时候,可以指定最大的显示长度。M的最大值可为255
97.日期类型:如果不手动设置,TIEMSTAMP列将被设置为最近修改行的日期,这对于事物的记录是很有意义的
98.TEXT和BLOB类型:这些类型大小可变,他们分别适用于长文本或二进制数据,BLOB支持任何数据类型,图像或声音数据
在实际应用中除了TEXT区分大小写BOLB不区分为,TEXT和BLOB是相同的
99.SET和ENMU。
SET类型用来指定列中的值必须来自一个特定集合中的指定值,列值可以包含来自该集合的多个值。在指定的集合中,最大可以有64个元素
ENMU就是枚举类型。与SET类型非常类型,但是该类型的列可以只有一个指定集合中的值或者NULL,在枚举中最大还可以有65535个元素
100.在插入数据的时候,数字和日期不需要引号
方法一:insert into customer(name,address,city) values('huangwenyuan','hecuo','xiamen');
方法二:insert into customer set name='huangwenyuan', address='hecuo',city='xiamen';
INSERT只能带有少数几个关键字,在INSERT后面,可以添加LOW_PRIORITY或DELAYED关键字。LOW_PRIORITY关键字意味着当时数据不是从表格读出
时,系统必须等待并且稍后再插入。DELAYED关键字意味着插入的数据将被缓存。如果该服务器繁忙,我们可以继续运行其他查询,而不是等待
这个INSERT操作的完成
这两个关键字以后,可以指定IGNORE(可选的)。这意味着如果尝试插入任何可能导致重复唯一键的记录行,这些记录将被自动忽略。另一种办法是
在INSERT语句的末尾指定ON DUPLICATE KEY UPDATE expression
101.匹配模式可以由常规文本加上匹配任何数量字符的"%"(百分号),和只匹配一个字符的"_"(下划线)组成
select *from customer where name like '%huang%';
102.左关联查询(RIGHT JOIN 右关联):
select customer.customerid,customer.name,orders.orderid from customer lef
t join orders on customer.customerid = orders.customerid;
+------------+--------------+---------+
| customerid | name | orderid |
+------------+--------------+---------+
| 1 | huangwenyuan | NULL |
| 3 | dingwenyuan | 1 |
| 3 | dingwenyuan | 2 |
| 4 | huangyonghua | NULL |
| 5 | zhangde | NULL |
| 6 | huangyonghua | NULL |
+------------+--------------+---------+
对于上面的左关联,我们也可以查询为null的数据
select customer.customerid,customer.name
from customer left join orders
using (customerid)
where orders.orderid is null
注意USING语法,并不要求来自哪个表,正因为如此,两个表的名称要相同
103.使用表的别名:Aliases:
select c.name,c.address,c.city from customer c where 1=1;
可以给一个表起多个别名,但为了混淆,少用
104.以特定的顺序获取数据:
ORDER BY 子句可以根据出现在SELECT子句中的一列或多列对数据进行排序
DESC——降序
ASC——升序(默认)
105.使用GROUP BY 进行分组浏览:
select customerid, avg(amount)
from orders
group by customerid;
106.使用having子句:
select countmerid, avg(amount)
from orders
group by customerid
having avg(amount)>50;
HAVING子句匹配查询到的数组
107.使用limit选择要返回的行:
select name
from customer
limit 2,3;
该查询的意思是:“从customer表中选择name列,返回3行,从返回结果的第二行开始”。请注意,行号是以0开始索引的;也就是说,结果的第一行
其行号为0
108.使用子查询:
select customerid.amount
from orders
where amount = (select max(amount) from orders);
使用子查询的效率并不高,下面可以实现一样的效果:
select customerid,amount
from orders
order by amount desc
limit 1;
109.使用 exists:
select name,address,city
from customer
where not exists(select*from customer where customerid = 6);
如果存在返回true,不存在则返回false
110.使用子查询作为临时表:
select *from
(select customerid,name from customer where city='xiamen')
as yuan;
必须为子查询定义一个别名,其中yuan是定义的别名
111.更新数据库数据:
update customers
set address='xianggang'
where customerid=4;
删除表记录:
delete from customer where customerid=7;
删除表
drop table tablename;
删除整个数据库
drop database databasename;
对表的操作:
alter table customer add name char(20) after city;——在表中新增列
alter table customer drop city;——在表中删除列
alter table customer modify name char(100);——修改表中列的属性
alter table customer change old_column new_column char(100) ;——修改表中列的名称
alter table customer rename as news;——对表重命名
定义外键
下面为两张表之间建立前面所述的那种“约束”。因为pc的CPU型号必须参照parts表中的相应型号,所以我们将pc表的cpumodel字段设置为“外键”(FOREIGN KEY),即这个键的参照值来自于其他表。
ALTER TABLE pc ADD CONSTRAINT fk_cpu_model
FOREIGN KEY (cpumodel)
REFERENCES parts(model);
|
第一行是说要为pc表设置外键,给这个外键起一个名字叫做fk_cpu_model;第二行是说将本表的cpumodel字段设置为外键;第三行是说这个外键受到的约束来自于parts表的model字段。
这样,我们的外键就搞好了!如果我们试着CREATE一台pc,它所使用的CPU的型号是parts 表中不存在的,那么MySQL会禁止这台PC被CREATE出来。
分享到:
相关推荐
MySQL中文参考手册.chm 449kb <br/>0 译者序 1 MySQL的一般的信息 1.1 什么是MySQL? 1.2 关于本手册 1.2.1 本手册中使用的约定 1.3 MySQL的历史 1.4 MySQL的主要特征 1.5...
mysql5.5、mysql5.5、mysql5.7、mysql8 各种版本最新下载合集 MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提 高了灵活性。 MySQL...
1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的差别 1.8.6. ...
├─新版MySQL DBA 课件ppt │ 第一课数据库介绍篇.pdf │ 第七课MySQL数据库设计.pdf │ 第三十一课percona-toolkits 的实战及自动化.pdf │ 第三课MySQL授权认证.pdf │ 第九课MySQL字符集.pdf │ 第二十一课MySQL...
MySQL 8.0 升级版本 在本文中,我们将详细介绍 MySQL 8.0 升级版本的步骤和注意事项。MySQL 是一个流行的开源关系数据库管理系统,广泛应用于各种Web 应用程序中。升级 MySQL 版本可以提高数据库性能、修复 bugs 和...
在C#编程环境中,连接MySQL数据库通常依赖于特定的数据提供者,这就是MySql.Data.dll和MySql.Web.dll的角色。这两个动态链接库(DLL)文件是MySQL官方提供的.NET数据访问组件,使得C#开发者能够轻松地与MySQL服务器...
mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而JDBC(Java Database Connectivity)是Java语言与数据库交互的标准接口。本文将深入探讨Mysql5.6和Mysql5.7的JDBC驱动,以及如何使用`mysql-connector-java-...
在本教程中,我们将深入探讨如何在Windows操作系统上详细安装MySQL 8.0.36.0。MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),它在各种规模的企业和项目中扮演着核心角色。MySQL 8.0版本带来了许多性能...
MySQL ODBC 5.1 Driver 是一个用于连接MySQL数据库的开放数据库连接(ODBC)驱动程序,它允许用户通过标准的ODBC接口访问MySQL数据库,适用于Windows操作系统。这个版本是免安装的,意味着用户可以直接解压使用,...
MySQL驱动jar文件是Java应用程序与MySQL数据库之间通信的关键组件,主要功能是提供Java Database Connectivity (JDBC) API,使得Java开发者能够通过编写Java代码来执行SQL语句,从而操作MySQL数据库。标题提到的...
MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的...
MySQL 5.7中文文档是针对这个特定数据库版本的详细技术参考,包含了丰富的信息,适合开发者、管理员和学习者使用。文档的翻译质量被描述为“还行”,尽管资源可能不易找到,但提供了全面的指南。 该文档涵盖了从...
mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,其驱动程序是Java应用程序连接MySQL数据库的关键组件。本文将详细介绍MySQL 8和MySQL 5驱动的区别以及与JDK版本的兼容性问题。 首先,MySQL 8和5的主要区别在于...
《涂抹MySQL:跟着三思一步一步学MySQL》是一本旨在帮助初学者和中级用户深入理解MySQL数据库系统的教程。这本书通过清晰的解释和实例,逐步引导读者掌握MySQL的核心概念和技术。MySQL是一种广泛使用的开源关系型...
例如,`mysql_init()`用于初始化一个MySQL连接结构,`mysql_real_connect()`用于建立实际的数据库连接,`mysql_query()`用于执行SQL查询,而`mysql_store_result()`和`mysql_use_result()`则用于处理查询结果。...
MySQL驱动是Java应用程序连接到MySQL数据库的关键组件,它允许程序通过Java Database Connectivity (JDBC) API与MySQL服务器进行通信。本压缩包包含了两个适用于MySQL 5.7版本的驱动文件:`mysql-connector-java-...