1. 程式人生 > >my sql 的基本操作

my sql 的基本操作

# 關係型資料庫和非關係型資料庫

# 結構化查詢語言(Structured Query Language)簡稱SQL

# 關係型和非關係型之間的實際用處
# NOSQL非關係型資料庫小結:
#     1、NOSQL不是否定關係資料庫,而是作為關係資料庫的一個重要補充
#     2、NOSQL為了高效能、高併發而生,忽略影響高效能,高併發的功能
#     3、NOSQL典型產品memcached (純記憶體),redis(持久化快取),mongodb(文件的資料庫)
# MySQL 屬於關係型資料庫

## 方法1,直接在dos命令列下(需要新增環境變數)
# 格式:mysqladmin -u使用者名稱 -p舊密碼 password 新密碼 # 方法2: 用SET PASSWORD命令 # 首先登入MySQL,使用mysql自帶的那個客戶端連線上mysql。 # 格式:mysql> set password for 使用者名稱@localhost = password('新密碼'); # 方法3:用UPDATE直接編輯那個自動的mysql庫中的user表 # 首先登入MySQL,連線上mysql服務端。 # mysql> use mysql; use mysql的意思是切換到mysql這個庫, # 這個庫是所有的使用者表和許可權相關的表都在這個庫裡面,我們進入到這個庫才能修改這個庫裡面的表。
# mysql> update user set password=password('123') where user='root' and host='localhost'; 其中password=password('123') 前面的password是變數,後面的password是mysql提供的給密碼加密用的, # 我們最好不要明文的存密碼,對吧,其中user是一個表,存著所有的mysql使用者的資訊 # mysql> flush privileges #重新整理 # shell>mysql -u root -p # mysql> update user set password=password(”xueok654123″) where user=’root’;
修改mysql中的root的密碼


1 my sql 的常用命令
#  select version(),current_date;# 顯示當前mysql版本和當前日期
SQL 包含4個部分
1.1資料定義語言DDL(Data Definition Language):操作的物件時資料庫和表
常用的關鍵字   create alter drop truncate(刪除當前表再新建一個一模一樣的表結構)

# use dbname; 開啟資料庫:
# create database name; 建立資料庫
# use databasename; 選擇資料庫
# drop database name 直接刪除資料庫,不提醒
# mysqladmin drop database name 刪除資料庫前,有提示。
# mysql> flush privileges //重新整理資料庫

#   建立表:create table student(
#
#       id int(4) primary key auto_increment,
#
#       name varchar(20),
#
#       score int(3)
#
#     );#varchar型別的長度是可變的,取值範圍是0-65535
# varchar型別實際佔用空間為字串的實際長度加1
# char型別的長度是固定的,在建立表時就指定了,其長度可以是0-255之間的任意值。
# 雖然char佔用的空間比較大,但它的處理速度快
# alter table student rename (to) teacher;
# alter table student add password varchar(20);
# alter table student change password pwd varchar(20);
# alter table student modify pwd int;
# alter table student drop pwd;

# show tables;  #檢視當前庫中所有的表
# show create table t1; #檢視單表的建立資訊
# 以表格的形式顯示結果
# desc t1;#查看錶的結構
# describe t1;#上下這兩句是一樣的結果
# show tables; 顯示錶
# describe tablename; 表的詳細描述
# describe user; 顯示錶mysql資料庫中user表的列資訊);
資料定義語言DDL

 

1.2 :資料操縱語言DML(Data Manipulation Language)物件:紀錄(行)

關鍵詞:insert update delete
# 插入:insert into student values(01,'tonbby',99); (插入所有的欄位)
#       insert into student(id,name) values(01,'tonbby'); (插入指定的欄位)
# #
# 更新:update student set name = 'tonbby',score = '99' where id = 01;
# #
# 刪除:delete from tonbby where id = 01;
# delete from t1 where id=1; #刪除id為1的行
# truncate table t1;資料量大,刪除速度比上一條快,且直接從零開始

# update t1 set name='sb' where id=2; #把id為2的行(記錄)中的name欄位的資料改為sb;id>1;id<=1;等等都可以
# update t1 set name='sb',id=88 where id>2; #對兩個欄位進行修改
# update t1 set name='sb';#如果不指定where,那麼會name欄位的所有資料都改成sb
資料操縱語言DML

 

1.3:資料查詢語言DQL(Data Query Language)

# select ... from student where 條件 group by 分組欄位 having 條件 order by 排序欄位
# 執行順序:from->where->group by->having->order by->select

# select 中加上distinct去除重複欄位
# select * from t1; #檢視t1表中所有欄位的資料,select 欄位 from 表。
# select id,name from t1;#檢視t1表中的id和name列的資料,其他的不看,注意格式,每個欄位逗號分隔,


# group by 通常和聚合函式(avg(),count()...)一起使用 ,經常先使用group by關鍵字進行分組,然後再進行集合運算。
# group by與having 一起使用,可以限制輸出的結果,只有滿足條件表示式的結果才會顯示。
# having和where的區別:
# 兩者起作用的地方不一樣,where作用於表或檢視,是表和檢視的查詢條件。having作用於分組後的記錄,用於選擇滿足條件的組。
#
資料查詢語言DQL

 

1.4:資料控制語言DCL(Data Control Language)

# 資料控制語言DCL用來授予或回收訪問資料庫的某種特權,並控制資料庫操縱事務發生的時間及效果,
# 對資料庫實行監視,使用者,許可權,事務等。
#
#   grant:授權,rollback:回滾。commit:提交。
資料控制語言DCL