mysql 基礎
概念
Database
長期存放在計算機內,有組織、可共享的大量數據的集合,是一個數據“倉庫
保存、管理數據
分類
關係型
- mysql 處理數據的閥值
- oracle
- sqlServer (微軟)
- DB2 (IBM 公司 )
- SQLite
非關係型
Redis、MongoDB
安裝配置mysql
配置path
path 是環境變量
windows 運行一些內容 是通過path 來運行的
在沒有配置環境變量之前
C:\Users\Administrator>mysql
'mysql' 不是內部或外部命令,也不是可運行的程序
或批處理文件。
配置mysql 的環境變量
好處 可以在任意目錄中 登錄 mysql
mysql 登錄
mysql -h服務器主機地址 -u 用戶名 -p密碼
mysql -h 127.0.0.1 -uroot -p123456
簡寫
mysql -u用戶名 -p
配置環境變量
打開 Win + R 輸入 cmd
進入到mysql 的 安裝目錄
在命令行中輸入以下命令
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
執行登錄命令
// 執行 mysql 命令 攜帶參數 -u用戶名 -p密碼
mysql -uroot -p
在輸入密碼之後顯示界面如下
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.7.19-log MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
退出命令
exit;
sql語句
mysql oracle 以及其他各種數據庫 相類似的
標準的 , 命令式 語句
分類
名稱 | 解釋 | 命令 |
---|---|---|
DDL 數據定義語言 |
定義和管理數據對象 如數據庫. 數據表等(數據容器) |
create drop alter |
DML 數據操作語言 |
用於操作數據庫對象 所包含的數據 |
insert update delete |
DQL 數據查詢語言 |
用於查詢數據庫數據 | select |
DCL 數據控制語言 |
用來管理數據庫中的語言 包括管理權限以及數據更改 |
grant revoke |
數據庫操作
mysql -h 127.0.0.1 -uroot -p123456
查看當前mysql中有哪些數據庫
show databases;
新建數據庫
create database phonenum;
#Query OK, 1 row affected (0.00 sec)
使用(進入)數據庫
use phonenum
# Database changed
(切換)更改進入數據庫
use mysql
查詢當前數據庫中的所有表
show tables;
查詢表中的數據
select * from user;
刪除數據庫
drop database [if exists] 數據庫名;
創建表格式
創建表
use phonenum
# 表格 是有表頭的
create table phones(
name varchar(50) ,
phoneno varchar(11)
);
刪除表
drop table [if esists] 表名;
drop table phones;
# 表不存在 ERROR 1051 (42S02): Unknown table 'phones'
drop table if exists phones;
# Query OK, 0 rows affected, 1 warning (0.00 sec)
表格的格式
CREATE TABLE [ IF NOT EXISTS ] `表名` ( # 反引號 (可選、區別於單引號)
`字段名1` 列類型 [ 屬性 ] [ 索引 ] [註釋] ,
`字段名2` 列類型 [ 屬性 ] [ 索引 ] [註釋] ,
… …
`字段名n` 列類型 [ 屬性 ] [ 索引 ] [註釋]
) [ 表類型 ] [ 表字符集 ] [註釋] ;
數據類型
- 數值類型
- 字符串
- 日期
- null
char 和 varchar 的區別
char 是固定長度的字符串
name char(100) 給name分配 100長度的空間,如果name佔用不足100 使用空格填充
varchar 可變長度的字符串 (節約空間 , 使用率更高)
name varchar(100) 給name分配 100長度的空間,如果name佔用不足100 自動縮小內存佔用
null 值
意義 : 沒有值
不要使用null 來進行算術運算, null 和 任何值做運算, 結果都爲null
數據字段屬性
UNSIGNED 無符號的 聲明該數據列不允許負數
ZEROFILL 0填充的 不足位數的用0來填充,如 int(3) , 5則爲 005
AUTO_INCREMENT
自動增長的,每添加一條數據,自動在上一個記錄數上加1
通常用於設置主鍵,且爲整數類型
可定義起始值和步長
NULL 和 NOT NULL 默認爲NULL,即沒有插入該列的數值
如果設置爲NOT NULL,則該列必須有值
DEFAULT 用於設置默認值
數據字段註釋
語法 字段屬性/ 表右括號之後 添加 COMMENT '註釋信息'
CREATE TABLE [ IF NOT EXISTS ] `test` (
`id` int (11) UNSIGNED COMMENT ‘編碼號’
) COMMENT=‘測試表’;
案例
表的類型設置
表的字符集設置
charset = utf-8;
修改數據庫表
查看錶結構
desc 表名
修改表名
alter teble 舊錶名 rename as 新表名
alter table phones rename as phonenums;
添加新字段
alter table 表名 add 字段名 字段類型 [屬性]
alter table phonenums add address varchar(255) default '青島';
修改字段類型,屬性
alter table 表名 modify 字段 新的類型[屬性]
alter table phonenums modify address varchar(255) default '濟南';
修改字段名稱
alter table 表名 change 舊字段名 新字段名 新字段名的類型[屬性]
alter table phonenums change address addr varchar(255) default '濟南';
刪除字段
alter table 表名 drop 字段名
alter table phonenums drop addr;
DML 數據操作語言
案例
create database if not exists school ;
use school
create table student(
sid int(5) not null COMMENT '學生編號',
sname varchar(50) not null COMMENT '學生姓名',
saddr varchar(255) default '青島' COMMENT '學生地址'
);
新增數據
給所有值新增數據
insert into 表名 values (按照表的所有字段順序,依次插入值);
insert into student values (10086,'畢吉倫','青島嶗山');
# Query OK, 1 row affected (0.01 sec)
給指定值新增數據
insert into 表名 (字段1,字段2) values (值1, 值2);
insert into student (sid,sname) values (10010, '孫繼斌');
一條語句添加多行數據
insert into 表名 (字段1,字段2) values (值1, 值2),(值1, 值2),(值1, 值2);
insert into student (sid,sname) values (12306, '宮駿騰'),(12315, '周書建');
查詢命令
select * from 表名;
select * from student;
授權其他用戶訪問該數據庫
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;