A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© minaduki2333 初级黑马   /  2018-12-10 17:23  /  618 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[Java] 纯文本查看 复制代码
   数据库分类[/align]

		关系型
			mysql
			oracle
			db2
		非关系型
			redis
    SQL
    1.什么是SQL?
		Structured Query Language:结构化查询语言
		其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。
		
	2.SQL通用语法
		1. SQL 语句可以单行或多行书写,以分号结尾。
		2. 可使用空格和缩进来增强语句的可读性。
		3. MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
		4. 3 种注释
			* 单行注释: -- 注释内容
                   或          # 注释内容(mysql 特有) 
			* 多行注释: /* 注释 */
    SQL分类
        1) DDL(Data Definition Language)数据定义语言
           用于定义数据库和表、列等,关键字:create, drop,alter 等
        2) DML(Data Manipulation Language)数据操作语言
		用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等
        3) DQL(Data Query Language)数据查询语言
		用来查询数据库中表的记录(数据)。关键字:select, where 等
	     4) DCL(Data Control Language)数据控制语言(了解)
		用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等
     数据类型
		VARCHAR(长度)
		CHAR(长度)
		TEXT
		DATE
		DATETIME
		TIMESTAMP	默认当前系统时间
  
      		* MySQL服务启动
			1. 手动。
			2. cmd--> services.msc 打开服务的窗口
			3. 使用管理员打开cmd
				* net start mysql : 启动mysql的服务
				* net stop mysql:关闭mysql服务
		* MySQL登录
			1. mysql -uroot -p密码
			2. mysql -hip -uroot -p连接目标的密码
			3. mysql --host=ip --user=root --password=连接目标的密码
		* MySQL退出
			1. exit
			2. quit
           *netstat -ano | findStr "3306"
    	taskkill /F /PID mysql的进程id
	
 	* MySQL目录结构
			1. MySQL安装目录:basedir="D:/develop/MySQL/"
				* 配置文件 my.ini
			2. MySQL数据目录:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
				* 几个概念
					* 数据库:文件夹
					* 表:文件
					* 数据:数据
     *数据库/表操作
     //数据库操作
        CREATE DATABASE db2;
        CREATE DATABASE IF NOT EXISTS db2; 
        CREATE DATABASE db3 CHARACTER SET gbk;
        CREATE DATABASE IF NOT EXISTS db3 CHARACTER SET utf8;

        DROP DATABASE db3;
        DROP DATABASE IF EXISTS db3;

        ALTER DATABASE db1 CHARACTER SET utf8;

        SHOW DATABASES;
        SHOW CREATE DATABASE db2;
     //表操作
        CREATE TABLE student(id INT,stuname VARCHAR(30),age INT);
        CREATE TABLE student2 LIKE student;

        DROP TABLE student;
        DROP TABLE studnet IF EXISTS;

        ALTER TABLE student RENAME TO class;
        ALTER TABLE student CHARACTER SET utf8;
        ALTER TABLE student ADD weight INT;
        ALTER TABLE student CHANGE age birth DATE;
        ALTER TABLE student MODIFY age INT;
        ALTER TABLE studnet DROP age;

        SHOW TABLES;
        DESC student;
     //表中的数据操作
        INSERT INTO student(id,stuname,age)VALUES(1,zhang,20);
        INSERT INTO student VALUES(2,zuo,30);

        DELETE FROM student WHERE id=2;
        TRUNCATE TABLE student WHERE id=2;

        UPDATE student SET age=20,stuname=zoezuo WHERE id=2;

       SELECT * FROM student;

       ALTER TABLE student CHANGE NAME stuname VARCHAR(30);
       UPDATE student SET stuname="张子琪",weight=160 WHERE id=1;
       USE db1;
事务				START TRANSACTION;		COMMIT;		ROLLBACK;			四大特性			原子			持久			一致			隔离				隔离级别(脏读,不可重复读,虚读,幻读)			默认隔离界别				MYSQL --> 3				ORACLE --> 2			jdbc	概念		一套接口(java提供的规范)	-->		要求厂商自己实现操作各自数据库的 驱动		面向接口编程	1.注册驱动	2.获取连接	3.创建sql和执行sql的对象	4.执行sql获取结果	5.处理结果	6.释放资源		ps:		1.ResultSet的遍历			while(rs.next()){				rs.getObejct(1);				rs.getObejct("列名")			}		2.sql注入			使用	PrepareStatement	配合占位符  ?			pst.executeQuery()	--> 没有参数			pst.executeUpdate() --> 没有参数		3.事务			conn.setAutoCommit(false);			conn.commit()			conn.rollback();				连接池	C3P0		接入步骤:			1.导jar				1.c3p0  2个				2.mysql驱动			2.导入配置文件(src目录下)				c3p0-config.xml			3.使用				DataSource dataSource = new ComboPooledDataSource();				Connection con = dataSource.getConnection();			DRUID(德鲁伊)		接入步骤				1.导jar					1.druid					2.mysql驱动				2.导入配置文件(src)					druid.properties				3.使用					Properties pro = new Properties();					pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"))					DataSource dataSource = DruidDataSourceFactory.createDataSoure(pro)					Connection con = dataSource.getConnection();											JdbcUtils实现思路		1.获取数据源(连接池)	DataSource		2.获取连接对象 			Connection		3.释放资源				重载		思路:			1,2:				DataSource在类加载的时候就应该初始化,为了保证对象能够及时创建,在 static{} 静态代码块中创建的对象					Properties pro = new Properties();					pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"))					dataSource = DruidDataSourceFactory.createDataSoure(pro)								提供返回数据源的方法 getDataSource()   ---> return dataSource				提供返回连接		 getConnection()   ---> return dataSource.getConnection()							3:				在关闭之前做非空判断!!!JdbcTemplate	SPRING	(基于jdbc来简化数据库的操作)		!!!如果有占位符需要传入参数		DataSource dataSource = new ComboPooledDataSource();	JdbcTemplate template = new JdbcTemplate(dataSource);			增删改		template.update("sql",[具体参数]);			查询		单条结果			Map map = template.queryForMap("sql",[具体参数]);			Bean bean = template.queryForObject("sql",new BeanPropertyRowMapper(Bean.class),[具体参数]);		多条结果			List<map> list = template.queryForList("sql",[具体参数]);			List list = template.query("sql",new BeanPropertyRowMapper(Bean.class),[具体参数]);</map


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马