`
tzq668766
  • 浏览: 79383 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

MySQL学习笔记

阅读更多
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。Sun公司在2009年4月20日被ORACLE公司宣布收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

一、启动与退出
1、进入MySQL:
启动MySQL Command Line Client(MySQL的DOS界面/终端界面),直接输入安装时的密码即可。此时的提示符是:  mysql>
或打开终端,输入SQL语句:
  > mysql –u root –p 
//第一次登陆,没有密码
2、退出MySQL:
quit或exit


二、库操作
1、创建一个数据库 tzq
 
  mysql> CREATE DATABASE tzq;


语法:CREATE  DATABASE  [IF NOT EXISTS] db_name
CREATE DATABASE用于创建数据库,并进行命名。如果要使用CREATE  DATABASE,您需要获得数据库CREATE权限。

2、使用SHOW语句找出在服务器上当前存在什么数据库:
命令:show databases (注意:最后有个s)
mysql> SHOW DATABASES;
       +--------------------------+
       | Database          |
       +--------------------+
       | information_schema |
       | mysql             |
       +-------------------------+
       2 rows in set (0.31 sec)

3、删除数据库
  命令:drop database <数据库名>
  例如:删除名为 tzq的数据库
mysql> drop database tzq;


4、连接数据库
  命令: use <数据库名>
  例如:如果tzq数据库存在,尝试存取它:
   
mysql> use tzq;

       屏幕提示:Database changed

5、查看当前选择(连接)的数据库
 
mysql> select database();


6、当前数据库包含的表信息:
 mysql> show tables; (注意:最后有个s)


7、创建用户并赋予取予权利:
grant all privileges on dbname.* to tzqlab identified by 'tzq123';

给localhost域的用户username管理dbname数据库的所有权利,密码为tzq123。

三、表操作,操作之前应连接某个数据库(use table_name)
1、建表
命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);
  
 mysql> create table student(
               id int(6)  primary key auto_increment,
			  name char(20) not null,
			  sex int(4) not null default '0',
			  degree double(8,2));
        mysql> create table t_test(
               id int(10)  primary key auto_increment,
			  name char(20) );
        mysql> insert into t_test values(1,'zhangsan');


常用的数据类型:
  A:数字类型:
       int(integer)   大整数值
       float        单精度浮点数
       double (real)  双精度浮点数
B:字符串类型:
    char 定长字符串
    varchar 变长字符串
Text / Blob  长度超过255的字符串
C:日期类型
   Date
   Time
       Year
主要的6个:
1).INT[(M)] 型: 正常大小整数类型
2).DOUBLE[(M,D)] [ZEROFILL] 型: 正常大小(双精密)浮点数字类型
3).DATE 日期类型:支持的范围是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列
4) DATETIME 时间类型:支持的范围:1000-01-01 00:00:00到9999-12-31 23:59:59
5).CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度
6).BLOB TEXT类型,最大长度为65535(2^16-1)个字符。
7).VARCHAR型:变长字符串类型
在数据库应用,我们经常要用到唯一编号,以标识记录。在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成。

2、获取表结构
     命令: desc 表名,或者show columns from 表名
     
  mysql> desc test;
        mysql> show columns from test;  //等价于desc

3、删除表
  命令:drop table <表名>
  例如:删除表名为 test 的表
mysql> drop table MyClass;

4、插入数据
  命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]

      例如,往表 student中插入二条记录, 这二条记录表示:
      编号为1的名为Tom的成绩为96.45,
      编号为2 的名为Joan 的成绩为82.99,
      编号为3 的名为Wang 的成绩为96.5.
mysql> insert into student values(1,'Tom',0,96.45);
           insert into student values(2,'Joan',0,82.99);
           insert into student values(3,'Wang', 1,96.59);

5、查询表中的数据
1)、查询所有行
命令: select <字段1,字段2,...> from < 表名 > where < 表达式 >
例如:查看表 student中所有数据
mysql> select * from student;

2)、查询前几行数据
例如:查看表 student 中前2行数据,从哪一行开始,取几行。
 mysql> select * from student order by id limit 0,2;

6、删除表中数据
命令:delete from 表名 where 表达式
例如:删除表 student中编号为1 的记录
mysql> delete from student where id=1;

7、修改表中数据:
update 表名 set 字段=新值,… where 条件 3
mysql> update student set name='Mary' where id=1;

8、在表中增加字段:
  命令:alter table 表名 add字段 类型 其他;
  例如:在表student中添加了一个字段passtest,类型为int(4),默认值为0
 
mysql> alter table student add passtest int(4) default '0'

9、更改表名:
命令:rename table 原表名 to 新表名;
例如:在表student名字更改为stu
mysql> rename table student to stu;

更新字段内容:
update 表名 set 字段名 = 新内容
update 表名 set 字段名 = replace(字段名,'旧内容','新内容');
文章前面加入4个空格
update article set content=concat(' ',content);


   10. 修改密码:
1) 格式:(前提-进入目录mysqlbin)mysqladmin -u用户名 -p旧密码 password 新密码
如果开始时root没有密码,-p旧密码一项就可以省略。
2)
Mysql>mysql -u root  
 Mysql>update mysql.user set password=password('newPassword') where user='root';
     Mysql>flush privileges;


Mysql忘记密码后的办法

[windows]
1、停止mysql服务:打开命令行窗口CMD,Net stop mysql
2、用另外一种方式启动Mysql:在命令行进入到mysql的安装路径下的bin目录下使用mysqld-nt.exe启动:
mysqld-nt --skip-grant-tables
   注意:此时CMD窗口不能关闭。
3、进入Mysql:另外打开一个命入令行窗口,在bin目录下执行mysql,此时无需输入密码即可进入。
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
>exit

4、使用任务管理器,找到mysqld-nt的进程,结束进程!
5、重新启动mysql服务,net start mysql 就可以用新密码登录了。

[linux]
1、关闭Mysql: 如果 MySQL 正在运行,首先杀之 killall -TERM mysqld
2、另外的方法启动 MySQL :bin/mysqld_safe --skip-grant-tables &
3、可以不需要密码就进入 MySQL 了。
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;

   注意点同上
4、kill结束 MySQL ,用正常方法启动 MySQL 。

四、JDBC连接Mysql编程的步骤

  • ① 注册一个driver
  • 注册驱动程序有三种方式:
  • 方式一:  class.forName(“com.mysql.jdbc.Driver”);
  •     Java规范中明确规定:所有的驱动程序必须在静态初始化代码块中将驱动注册到驱动程序管理器中。
  • 方式二: Driver drv = new oracle.jdbc.dirver.OracleDriver();   //针对没有隐式注册时采用
  •          DriverManager.registerDriver(drv);
  • 方式三:编译时在虚拟机中加载驱动
  • sql –Djdbc.dirvers=驱动全名 类名
  • 例: java –Djdbc.drivers=oracle.jdbc.driver.OracleDriver Lab1
  •      使用系统属性名,加载驱动; -D表示为系统属性赋值。
  • 附:Oracle的Driver的全名 oracle.jdbc.driver.OracleDriver         
  •       SQLServer的Driver的全名com.microsoft.jdbc.sqlserver.SQLServerDriver
  • ② 建立连接
  • conn=DriverManager.getConnection(“jdbc:oracle:thin:@127.0.0.1:1521:tzq”, 
  • ” User”,” Pasword”);
  • Connection连接是通过DriverManager的静态方法getConnection(....)来得到的,这个方法的实质是把参数传到实际的Driver中的connect()方法中来获得数据库连接的。
  • Oracle URL的格式:
  • jdbc:oracle:thin:(协议)@XXX.XXX.X.XXX:XXXX(IP地址及端口号):XXXXXXX(所使用的库名)
  • MySql URL的写法        例: jdbc:mysql://127.0.0.1:3306/test
  • SQLServer URL的写法    例:jdbc:microsoft:sqlserver://127.0.0.1:1433
  • ③ 获得一个Statement对象      stm = conn.createStatement();    
  • ④ 通过Statement执行SQL语句    
  •     stm.excuteQuery(Sring sql);     //返回一个查询结果集
  •     stm.excuteUpdate(String sql);    //返回值为int型,表示影响记录的条数。
  •     Stm.excute(String sql);         //返回true,表示查询;返回false,表示其它操作。
  • 将java语句通过连接发送到数据库中执行,以实现对数据库的操作。
  • ⑤ 处理结果集
  • ⑥ 关闭数据库连接(释放资源)  调用.close()
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics