MySql入门
MySQL是什么?
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
数据库的本质是一个文件系统 数据库 中记录是有行有列的数据库就是关系型数据库 原生数据中 Oracle 比 MySQL强大 ,不过一般使用MySQL数据库(因为免费!)
为什么要使用MySQL:
由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择
首先究正你的一个印象:MySQL功能也很强大,只是对于可视化界面操作工具少,所以给很我初学者造成难上手的印象。
它的优点还有:开源,免费,支持非WINDOWS操作系统(并且运行速度比在WINDOWS上还要快),速度快,二次开发(除有需要特定应用,一般是不需要二次开发的)。
大公司更注重版权,开发人员也不能随便用盗版,所以,如果全部用正版数据库,肯定增加成本的。
MySQL的安装:
service mysqld start 启动 Mysql
- u root password 'root' 为root 账号设置密码
mysql>GRANT ALL PRIVILEGES ON *.* TO myuser @IDENTIFIED BY mypassword WITH GRANT OPTION 远程连接授权
SQL语句:
DDL 定义语句 create alter drop
DML 操控语句 insert delete update
DCL 控制语句 grant 创建用户
DQL 查询记录 select from where
关系数据库语言的国际标准 SQL92 SQL99 MySQL中的limit是自定义的
sql语句示范:
查看表
查看数据库中的所有表:show tables;
查看表结构:desc 表名;
删除表
drop table 表名;
l修改表
alter table 表名 add 列名 类型(长度) 约束; --修改表添加列.
alter table 表名 modify 列名 类型(长度) 约束; --修改表修改列的类型长度及约束.
alter table 表名 change 旧列名 新列名 类型(长度) 约束; --修改表修改列名.
alter table 表名 drop 列名; --修改表删除列.
rename table 表名 to 新表名; --修改表名
alter table 表名 character set 字符集; --修改表的字符集
新增
insert into 表 (列名1,列名2,列名3..) values (值1,值2,值3..); -- 向表中插入某些列
insert into 表 values (值1,值2,值3..); --向表中插入所有列
insert into 表 (列名1,列名2,列名3..) values select (列名1,列名2,列名3..) from 表
insert into 表 values select * from 表
修改
update 表名 set 字段名=值,字段名=值;
update 表名 set 字段名=值,字段名=值 where 条件;
删除
delete from 表名 [where 条件];
分组
select cid,count(*) from product group by cid select查出的列(聚合函数除外)必须出现在group by 中
执行顺序
- FROM(将最近的两张表,进行笛卡尔积)---VT1
- ON(将VT1按照它的条件进行过滤)---VT2
- LEFT JOIN(保留左表的记录)---VT3
- WHERE(过滤VT3中的记录)--VT4…VTn
- GROUP BY(对VT4的记录进行分组)---VT5
- HAVING(对VT5中的记录进行过滤)---VT6
- SELECT(对VT6中的记录,选取指定的列)--VT7
- ORDER BY(对VT7的记录进行排序)--游标
- LIMIT(对排序之后的值进行分页)
写where 条件的时候,优先级高的部分要去编写过滤力度最大的条件语句
表与表之间的关系
一对一关系
一对多关系
多对多关系
(多对一不是表之间的关系,是对象之间的关系)