my sql 的基本操作
阿新 • • 發佈:2018-12-05
# 關係型資料庫和非關係型資料庫 # 結構化查詢語言(Structured Query Language)簡稱SQL # 關係型和非關係型之間的實際用處 # NOSQL非關係型資料庫小結: # 1、NOSQL不是否定關係資料庫,而是作為關係資料庫的一個重要補充 # 2、NOSQL為了高效能、高併發而生,忽略影響高效能,高併發的功能 # 3、NOSQL典型產品memcached (純記憶體),redis(持久化快取),mongodb(文件的資料庫) # MySQL 屬於關係型資料庫
## 方法1,直接在dos命令列下(需要新增環境變數)修改mysql中的root的密碼# 格式: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’;
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