提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
MySQL是一个管理数据库的一个软件,sql是操作这个软件的语言。在web应用中,使用最多的是MySQL,它有开源、免费、功能足够强大,足以应付web应用开发的优点。
一、MySQL安装和启动
1.MySQL
数据库:存储数据的仓库,数据是有组织的进行
存储
数据库管理系统:操纵和管理数据库的大型软件
SQL
:操作关系型数据库的编程语言,定义了一 套操作关系型数据库统一标准
(1)关系型数据库
概念:
建立在关系模型基础上,由多张相互连接的
二维表组成的数据库
1.使用表存储数据,格式统一,便于维护
2.使用SQL
语言操作,标准统一,使用方便
(2)数据模型
客户端连接数据库管理系统,数据库管理系统中有
多个数据库,数据库中都有多张表
2.安装和启动
资源包
然后执行下面命令:
1initialization :初始化MYSQL服务
2install :安装MySQL服务 (将 MySQL 安装为
Windows 服务)
3startup :启动MYSQL服务
2.配置环境变量
系统->高级系统设置->环境变量->下方的Path->编辑->新建
配置好后,就可以以管理员的身份在命令提示符中执行一些简单的命令
二、SQL通用语法
1.单行或者多行书写,以分号结束
2.可以使用空格或者缩进来增强语句的可读性
3.mysql数据库中,SQL语句不区分大小写,关键字建议使用大写
分类
DDL
数据定义语言,用来定义数据库对象(数
据库,表,字段)
DML
数据操作语言,用来对数据表中的数据进
行增删改
DQL
数据查询语言,用来查询数据库中表的记
录
DCL
数据控制语言,用来创建数据库用户,控
制数据库的访问权限
DDL语句
数据库
查看数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| xml |
+--------------------+
5 rows in set (0.00 sec)
创建新数据库
mysql> create database mxl;
Query OK, 1 row affected (0.04 sec)
选择数据库
mysql> use mxl;
Database changed
删除数据库
mysql> drop database xml;
Query OK, 0 rows affected (0.05 sec)
DDL表管理
查看表
mysql> use mysql;
Database changed
mysql> show tables;
+------------------------------------------------------+
| Tables_in_mysql |
+------------------------------------------------------+
| columns_priv |
| component |
| db |
| default_roles |
| engine_cost |
| func |
| general_log |
| global_grants |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| password_history |
| plugin |
| procs_priv |
| proxies_priv |
| replication_asynchronous_connection_failover |
| replication_asynchronous_connection_failover_managed |
| replication_group_configuration_version |
| replication_group_member_actions |
| role_edges |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
| zy |
+------------------------------------------------------+
38 rows in set (0.00 sec)
创建表
mysql> create table why(
-> id int comment '序号',
-> name varchar(20) comment '姓名');
Query OK, 0 rows affected (0.50 sec)
查看表结构
describe 表名;
desc 表名;
show create table 表名;
删除表
drop table 表名;
用户管理
查看当前登录的用户
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
创建新用户
mysql> grant select on mysql.why to whm@'10.0.3.150';//ip
Query OK, 0 rows affected (0.06 sec)
mysql> grant all on mysql.why to zzz@localhost;
Query OK, 0 rows affected (0.04 sec)//本地
修改密码
mysql> alter user whm@'10.0.3.150' identified by '123456' password expire never;
Query OK, 0 rows affected (0.52 sec)//新创建用户只有登录权限,需要使用管理员账户授权
查询用户信息
mysql> select user,host from mysql.user;
+------------------+------------+
| user | host |
+------------------+------------+
| whm | 10.0.3.150 |
| mxl | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
| tmm | localhost |
| zzz | localhost |
+------------------+------------+
8 rows in set (0.00 sec)
新用户登录
mysql -u 用户名 [-h ip地址] -p
# 新创建的用户只有登录权限,需要使用管理员账
户授权
为用户授权
show grants for 用户名@localhost; #
查询用户的权限
2
3 数据库名 . 表名 *.* 数据
库名.*
4 grant all on kfm.carts to
txsy@localhost;
5 # all 代表所有权限
6
7 # 授权的新用户需要重新登录才能使用新权限
8
9 # 任意ip可以访问
10 GRANT ALL PRIVILEGES ON *.* TO '用户
名'@'%';
11 update mysql.user set host='%' where
user='txsy;
12
13
14 flush privileges;
all :所有权限
select :查询权限
insert :插入权限
update :更新权限
删除用户
drop user 用户名@'localhost';
总结
需要多次练习sql语句熟练掌握。