MySQL

什么是 MySQL ?

数据库的所有存储、检索、管理和处理实际上都是由数据库软件—DBMS(数据库管理系统)完成的。MySQL 是一种 DBMS ,即它是一种数据库软件。

MySQL 工具

  • mysql 命令行实用程序
  • MySQL Administrator
    MySQL Administrator(MySQL 管理器)是一个图形交互客户机,用来简化 MySQL 服务器的管理。
  • MySQL Query Browser
    MySQL Query Browser 为一个图形交互客户机,用来编写和执行 MySQL 命令。

使用 Mysql 数据库

  • 启动 Mysql 服务器
net start mysql
连接 Mysql 服务器

当 MySQL 服务已经运行时, 我们可以通过 MySQL 自带的客户端工具登录到 MySQL 数据库中, 首先打开命令提示符, 输入以下格式的命名:mysql -h 主机名 -u 用户名 -p
参数说明:

  1. -h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0。1)该参数可以省略;
  2. -u : 登录的用户名;
  3. -p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
如果我们要登录本机的 MySQL 数据库,只需要输入以下命令即可:
mysql -u root -p
Enter password:1183787376
  • 输入 exitquit 退出登录
查看创建了哪些数据库
show databases;
  • 查看一个数据库内表的列表
show tables;
  • 查看一个表中的字段
show columns from table;

显示 mysql 数据库是否为自动提交
show variables like '%commit';
关闭 mysql 数据库的自动提交
set autocommit=off;
开启事务
start transaction;
回滚事务
rollback;
提交事务
commit;

创建数据库

  • 创建数据库:CREATE DATABASE 数据库名;
  • 删除数据库:DROP DATABASE 数据库名;
  • 选择数据库:USE 数据库名;
  • 创建表
CREATE TABLE customers(
    cust_id int NOT NULL auto_increment,
    cust_name char(50) not null,
    cust_address char(50) null,
    cust_city char(50) null,
    cust_state char(5) null,
    cust_zip char(10) null,
    cust_country char(50) null,
    cust_contact char(50) null,
    cust_email char(255) null,
    primary key(cust_id)
)engine=innodb;
show columns from customers;
  • 使用 NULL

  • 主键

  • 使用 auto_increment

  • 指定默认值

  • 更改表的结构
    下列的例子给一个表添加一个列:ALTER TABLE vendors ADD vend_phone char(20);
    删除刚刚添加的列:ALTER TABLE vendors DROP COLUMN vend_phone;

ALTER TABLE 常见的用途是定义外键

  • 删除表 DROP TABLE 表名

  • 重命名表 RENAME TABLE 旧表名 TO 新表名

插入数据

把数据插入表中最简单的方法是使用 INSERT,它要求指定表名和被插入的数据。

INSERT INTO customers
VALUES(NULL, 'Pep E. LaPew', '100 Main Street',
'Los Angeles', 'CA', '90046', 'USA', NULL, NULL);

更安全的插入方法:

INSERT INTO customers(cust_name, cust_address,
cust_city, cust_state, cust_zip, cust_country,
cust_contact, cust_email)
VALUES('Pep E. LaPew', '100 Main Street', 'Los Angeles',
'CA', '90046', 'USA', NULL, NULL);

这里在表名后列出了列名

检索数据

  • 检索单个列 SELECT cust_name FROM customers;
    上述语句利用 SELECT 语句从 customers表中检索一个名为cust_name 的列
  • 检索多个列 SELECT cust_name, cust_country FROM customers
  • 检索所有的列 SELECT * FROM products.customers;
  • 检索不同的行
    使用 DISTINCT 关键字只是 Mysql 只返回不同的值
SELECT cust_name FROM customers;

结果:
在这里插入图片描述

SELECT DISTINCT cust_name FROM customers;

结果:
在这里插入图片描述

  • 使用全限定表名:SELECT customers.cust_name FROM products.customers;
    这里,customers 是表名,products 是数据库名

  • 限制结果 SELECT * FROM products.customers LIMIT 2;
    LIMIT 2 指示只返回 2 行结果

外键的创建

  • 两张表
    分类表
create table category(
  cid int primary key auto_increment,
  cname varchar(10),
  cdesc varchar(31)
);

insert into category values(null,'手机数码','电子产品,黑马生产');
insert into category values(null,'鞋靴箱包','江南皮鞋厂倾情打造');
insert into category values(null,'香烟酒水','黄鹤楼,茅台,二锅头');
insert into category values(null,'酸奶饼干','娃哈哈,蒙牛酸酸乳');
insert into category values(null,'馋嘴零食','瓜子花生,八宝粥,辣条');

商品表

create table product(
	pid int primary key auto_increment,
  	pname varchar(10),
  	price double,
  	pdate timestamp,
  	cno int
);

insert into product values(null,'小米mix4',998,null,1);
insert into product values(null,'锤子',2888,null,1);
insert into product values(null,'阿迪王',99,null,2);
insert into product values(null,'老村长',88,null,3);
insert into product values(null,'劲酒',35,null,3);
insert into product values(null,'小熊饼干',1,null,4);
insert into product values(null,'卫龙辣条',1,null,5);
insert into product values(null,'旺旺大饼',1,null,5);
  • 多表之间的关系如何来维护?
    外键约束:foreign key
    给 product 表中的 con 列添加一个外键约束【建好表之后做的】
ALERT TABLE product ADD FOREIGN KEY(con) REFREENCES category(cid);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值